8516830 发表于 2015-7-20 12:34:22

redis在.NET下的使用

  windows SEVER包:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload
  windows仅用来测试,性能不如在linux下高.
  
  c#使用:
  引用的ServiceStackRedis:https://github.com/mythz/ServiceStack.Redis
  
  



view plaincopy

[*]static void Main(string[] args)
[*]       {
[*]         var Redis = new RedisClient("127.0.0.1", 6379);//redis服务IP和端口
[*]
[*]         #region =insert=
[*]
[*]         //var storeMembers = new List { "jj", "lihui", "cc" };
[*]         //storeMembers.ForEach(x => Redis.AddItemToList("additemtolist", x));
[*]         //注:也可直接使用AddRangeToList方法将一组数据装入如:
[*]
[*]         //Redis.AddRangeToList("additemtolist", storeMembers);
[*]         #endregion
[*]
[*]         #region =get=
[*]
[*]         //var members = Redis.GetAllItemsFromList("additemtolist");
[*]         //members.ForEach(s => Console.WriteLine("additemtolist :" + s));
[*]         //Console.WriteLine(Redis.GetItemFromList("additemtolist", 2));
[*]         #endregion
[*]
[*]         #region =delete=
[*]
[*]         //var list = Redis.Lists["additemtolist"];
[*]         //list.Clear();//清空
[*]         //list.Remove("two");//移除指定键值
[*]         //list.RemoveAt(2);//移除指定索引位置数据
[*]         #endregion
[*]         #region =object=
[*]
[*]         //Redis.Set("userinfo", new UserInfo() { UserName = "李四", Age = 45 });
[*]         //UserInfo userinfo = Redis.Get("userinfo");
[*]         //Console.WriteLine(userinfo.UserName);
[*]
[*]         //Redis.Set("my_age", 12);//或Redis.Set("my_age", 12);
[*]         //Console.WriteLine(Redis.Get("my_age"));
[*]         #endregion
[*]
[*]         var ser = new ObjectSerializer();    //位于namespace ServiceStack.Redis.Support;
[*]         #region =序列化=
[*]         //bool result = Redis.Set("userinfo", ser.Serialize(new UserInfo() { UserName = "张三", Age = 12 }));
[*]         //UserInfo userinfo = ser.Deserialize(Redis.Get("userinfo")) as UserInfo;
[*]         //Console.WriteLine(userinfo.UserName);
[*]         #endregion
[*]
[*]         //也支持列表
[*]         //Redis.Set("userinfolist_serialize", ser.Serialize(userinfoList));
[*]
[*]         #region =负载均衡=
[*]
[*]         PooledRedisClientManager prcm = CreateManager(new string[] { "10.0.4.210:6379" }, new string[] { "10.0.4.210:6379" });
[*]         List userinfoList = new List();
[*]         userinfoList.Add(new UserInfo() { UserName = "pool_daizhj", Age = 1 });
[*]         userinfoList.Add(new UserInfo() { UserName = "pool_daizhj1", Age = 2 });
[*]
[*]
[*]         // 从池中获取一个链接:
[*]
[*]         using (IRedisClient Redis2 = prcm.GetClient())
[*]         {
[*]               Redis2.Set("userinfolist", userinfoList);
[*]               List userList = Redis2.Get("userinfolist");
[*]         }
[*]
[*]         #endregion
[*]         Console.ReadLine();
[*]       }
[*]       public static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)
[*]       {
[*]         //支持读写分离,均衡负载
[*]         return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
[*]         {
[*]               MaxWritePoolSize = 5,//“写”链接池链接数
[*]               MaxReadPoolSize = 5,//“写”链接池链接数
[*]               AutoStart = true,
[*]         });
[*]       }
页: [1]
查看完整版本: redis在.NET下的使用