码迷,mamicode.com
首页 > Web开发 > 详细

Redis .Net

时间:2018-05-17 23:27:12      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:高并发   val   sql   信息   好的   sts   效率   div   订阅   

一、Redis简介

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

 

Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

 

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

 

Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API,性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同)。

 

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

 

Redis是一种高级的key:value存储系统,其中value支持五种数据类型: 

1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)

目前在使用的项目有新浪微博、Github、StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/

 

二、windows下搭建redis环境

Redis官方没有提供Windows版本的,并且在Windows上也不太稳定,一般都将其部署到Linux环境下:

Linux下载地址(官方):http://redis.io/download

Windows下载地址:https://github.com/MicrosoftArchive/redis/releases

*、安装Redis

安装程序可以直接默认安装,注意端口设置就行;
如果是下载的ZIP文件,解压后可以存放到某个路径下(比如我D:\Program Files\Redis)

*、启用Redis

启用redis需要使用命令,首先定位到redis路径,按住Shift+右键,点击在此处用命令打开:

D:\Program Files\Redis>redis-server.exe redis.windows.conf

如果redis.windows.conf这个配置文件中的bind与port的IP和端口已经被占用,则会提示如下信息: 

技术分享图片

 这时候首先查询该端口的 pid,使用命令 【netstat -ano | findstr 6379】 

技术分享图片

 根据pid查看该详细的进程名称,使用命令【tasklist | findstr 10628】 

技术分享图片

 这个时候可以强制删除本程序及其子进程,使用命令 【taskkill -f -t -im redis-server.exe】,也可以修改redis.windows.conf文件中port端口号,都OK 

技术分享图片

 这个时候redis启动成功了,但是不要关掉本窗口,保持端口不是关闭;当然也可以在windows服务中将redis服务设置为随系统启动。这样就不用开着那个命令窗口了。 

技术分享图片

 

三、windows下简单使用redis
重新定位到redis路径,按住Shift+右键,点击在此处用命令打开:

D:\Program Files\Redis>redis-cli.exe -h 127.0.0.1 -p 6379

然后就可以执行set 给key为city赋值:

127.0.0.1:6379> set city Shanghai

通过get可以获取指定key为city的值了。

172.16.147.121:6379> get city

四、.NET下简单使用redis

方式1:下载ServiceStack.Redis,和MongoDB一样,在.NET中使用Redis其实也是使用第三方驱动,官网推荐的是使用ServiceStack.Redis 。

使用ServiceStack.Redis
首先解压ServiceStack.Redis并找到以下四个DLL ,然后添加到项目引用,就可以开始简单使用redis了;

技术分享图片

 

方式2:安装Nuget

PM> Install-Package ServiceStack.Redis

简单使用:

    class Program
    {
        static void Main(string[] args)
        {
            RedisClient redisClient = new RedisClient("127.0.0.1", 6379);
            redisClient.Set<string>("Hello","Hello Redis");
            string hello = redisClient.Get<string>("Hello");
            Console.WriteLine(hello);
            Console.ReadLine();
        }
    }

 

 

 

参考:

https://www.cnblogs.com/shping-yin/articles/6418225.html

https://blog.csdn.net/zhulongxi/article/details/73550076

 

Redis .Net

标签:高并发   val   sql   信息   好的   sts   效率   div   订阅   

原文地址:https://www.cnblogs.com/eedc/p/9053700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!