zoukankan      html  css  js  c++  java
  • windows 环境下.Net使用Redis缓存

    Redis简介

    Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API

    性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同)。

    Redis目前提供五种数据类型:string(字符串),list(链表), Hash(哈希),set(集合)及zset(sorted set)  (有序集合)

    Redis开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。

    Redis与Memcached的比较

    1.Memcached是多线程,而Redis使用单线程.

    2.Memcached使用预分配的内存池的方式,Redis使用现场申请内存的方式来存储数据,并且可以配置虚拟内存。

    3.Redis可以实现持久化,主从复制,实现故障恢复。

    4.Memcached只是简单的key与value,但是Redis支持数据类型比较多。

    Redis的存储分为内存存储、磁盘存储 .从这一点,也说明了Redis与Memcached是有区别的。Redis 与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Redis有两种存储方式,默认是snapshot方式,实现方法是定时将内存的快照(snapshot)持久化到硬盘,这种方法缺点是持久化之后如果出现crash则会丢失一段数据。因此在完美主义者的推动下作者增加了aof方式。aof即append only mode,在写入内存数据的同时将操作命令保存到日志文件,在一个并发更改上万的系统中,命令日志是一个非常庞大的数据,管理维护成本非常高,恢复重建时间会非常长,这样导致失去aof高可用性本意。另外更重要的是Redis是一个内存数据结构模型,所有的优势都是建立在对内存复杂数据结构高效的原子操作上,这样就看出aof是一个非常不协调的部分。

    其实aof目的主要是数据可靠性及高可用性.

    Redis安装

    文章的最后我提供了下载包,当然你也可以去官网下载最新版本的Redis http://pan.baidu.com/s/1pK8BMGF

    将服务程序拷贝到一个磁盘上的目录,如下图:

    文件说明:

    redis-server.exe:服务程序  

    redis-check-dump.exe:本地数据库检查 

    redis-check-aof.exe:更新日志检查 

    redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询.

    redis-cli.exe: 服务端开启后,我们的客户端就可以输入各种命令测试了 

    1、打开一个cmd窗口,使用cd命令切换到指定目录(F:Redis)运行 redis-server.exe redis.conf 

    2、重新打开一个cmd窗口,使用cd命令切换到指定目录(F:Redis)运行 redis-cli.exe -h 127.0.0.1 -p 6379,其中 127.0.0.1是本地ip,6379是redis服务端的默认端口 (这样可以开启一个客户端程序进行特殊指令的测试).

    可以将此服务设置为windows系统服务,下载Redis服务安装软件,安装即可。

    如果你的电脑是64bit系统,可以下载http://pan.baidu.com/s/1slPcW93

    安装完成Redis服务后,我们会在计算机的服务里面看到

    然后启动此服务。

    接下来在使用Redis时,还需要下载C#驱动(也就是C#开发库),如下图:

    源码地址:http://pan.baidu.com/s/1hr8kdOo

  • 相关阅读:
    Flutter开发指南之理论篇:Dart语法05(单线程模型,事件循环模型,Isolate)
    跨平台将终结
    一万字详解 Redis Cluster Gossip 协议
    Java实现简单的计算器
    CSDN开发者周刊第 22期:谷歌 DeepMind 第四代:不学规则就可以玩游戏;图灵奖得主 Edmund Clarke 因感染“新冠”逝世;
    理解Python闭包,这应该是最好的例子
    sscanf函数用法详解
    web项目中配置多个数据源
    web项目中配置多个数据源
    动态表格之查看、删除、编辑
  • 原文地址:https://www.cnblogs.com/zengdingding/p/6283363.html
Copyright © 2011-2022 走看看