Redis 环境搭建与使用(C#)

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis是一个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可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
 
安装与测试
我这边环境是windows7
解压至任意目录,双击运行 resis-server.exe
测试需要执行 redis—cli.exe
 
也可以将 resis-server.exe 注册到windows服务中,需要下载服务安装组件 https://github.com/rgl/redis/downloads
 
 
启动服务后测试(get  set)
至此,安装已经完成
 
C#实现
创建C#项目,添加redis相关引用,使用微软推荐的ServiceStack.Redis,建议使用VS2013,不然安装会失败。
 
using ServiceStack.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace TestRedis
{
    class Program
    {
        static void Main(string[] args)
        {
            PooledRedisClientManager prcm = CreateManager();
            //读写客户端
            using (IRedisClient Redis = prcm.GetClient())
            {
                Redis.Set("test", "testvalue" + DateTime.Now.ToString(), DateTime.Now.AddDays(10));
            }
            //只读客户端
            using (IRedisClient Redis = prcm.GetReadOnlyClient())
            {
                Console.WriteLine(Redis.Get<string>("test"));
            }
            Console.WriteLine("-----");
            Thread.Sleep(15000);
            Console.WriteLine("-----");
            using (IRedisClient Redis = prcm.GetReadOnlyClient())
            {
                Console.WriteLine("15秒后:" + Redis.Get<string>("test"));
            }
            Console.Read();
        }

        public static PooledRedisClientManager CreateManager()
        {
            //支持读写分离,均衡负载,负载均衡需要单独部署
            return new PooledRedisClientManager(new string[] { "10.58.8.239:6379" }//用于写
                , new string[] { "10.58.8.239:6379" }//用于读
                , new RedisClientManagerConfig
            {
                MaxWritePoolSize = 10,//“写”链接池链接数
                MaxReadPoolSize = 10,//“写”链接池链接数
                AutoStart = true,
               
            });
        }
    }
}

 

 

作者:释迦苦僧 出处:http://www.cnblogs.com/woxpp/p/5007623.html 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

 
posted @ 2015-11-30 16:42  释迦苦僧  阅读(4169)  评论(7编辑  收藏  举报