架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5253|回复: 0

[Redis] Redis .NET开源组件Beetle.Redis

[复制链接]
发表于 2015-12-29 11:58:16
zu
Beetle.Redis是一款开源的Redis Client for .net组件,它提供非常简便的操作方式可以让开发人员轻松地访问Redis,同时提供json和protobuf的数据格式支持.基于连接池的默认访问方式可以让开发人员简洁高效地访问redis同时,而不必关心线程和连接同步等一系列复杂的事情.
配置

  1. <configSections>
  2.     <section name="redisClientSection" type="Beetle.Redis.RedisClientSection, Beetle.Redis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  3.   </configSections>
  4.   <redisClientSection dB="0"  xmlns="urn:Beetle.Redis">
  5.     <writes>
  6.       <add host="192.168.0.105" connections="9"/>
  7.     </writes>
  8.     <reads>
  9.       <add host="192.168.0.105" connections="9"/>
  10.     </reads>
  11.   </redisClientSection>
复制代码

以上分别配置读/写服务地址,默认开启的连接数是9个,访问数据库是0;根据实际应用的需要读/写都可以配置多个redis服务信息.


组件的使用非常简单,在使用前并不需要象其他redis client组件一样定义连接信息,组件在缺省的情况下会自动使用 redisClientSection的配置环境去操作相应的Redis服务.


String Get/Set


  1. StringKey key = "HENRY";
  2.             string Remark = "henryfan gz cn 18 [email]henryfan@msn.com[/email] 28304340";
  3.             key.Set(Remark);
  4.             Assert.AreEqual(Remark, key.Get());
复制代码
Json Get/Set


  1. JsonKey rk = "henry_json";
  2.             UserBase ub = new UserBase();
  3.             ub.Name = "henryfan";
  4.             ub.City = "gz";
  5.             ub.Counrty = "cn";
  6.             ub.Age = 10;
  7.             rk.Set(ub);
  8.             Assert.AreEqual(ub.Name, rk.Get().Name);
复制代码
Protobuf Get/Set


  1. ProtobufKey rk = "henry_protobuf";
  2.             UserBase ub = new UserBase();
  3.             ub.Name = "henryfan";
  4.             ub.City = "gz";
  5.             ub.Counrty = "cn";
  6.             ub.Age = 10;
  7.             rk.Set(ub);
  8.             Assert.AreEqual(ub.Name, rk.Get().Name);
复制代码


List


  1. [TestMethod]
  2.         public void LST_POP_PUSH()
  3.         {
  4.             ProtobufList lst = "USERS";
  5.             lst.Push(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
  6.             Assert.AreEqual("henry", lst.Pop().Name);
  7.         }
  8.         [TestMethod]
  9.         public void LST_REMOVE_ADD()
  10.         {
  11.             ProtobufList lst = "USERS";
  12.             lst.Add(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
  13.             lst.Add(new UserBase { Name = "bbq", Age = 18, City = "gz", Counrty = "cn" });
  14.             Assert.AreEqual("bbq", lst.Remove().Name);
  15.         }
  16.         [TestMethod]
  17.         public void LST_Length()
  18.         {
  19.             ProtobufList lst = "USERS";
  20.             lst.Clear();
  21.             lst.Add(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
  22.             lst.Add(new UserBase { Name = "bbq", Age = 18, City = "gz", Counrty = "cn" });
  23.             Assert.AreEqual(lst.Count(), 2);
  24.         }
  25.         [TestMethod]
  26.         public void LST_Region()
  27.         {
  28.             ProtobufList lst ="USERS";
  29.             lst.Clear();
  30.             for (int i = 0; i < 10; i++)
  31.             {
  32.                 lst.Add(new UserBase { Name = "henry" + i, Age = 18, City = "gz", Counrty = "cn" });
  33.             }
  34.             IList items = lst.Range();
  35.             Assert.AreEqual(items[0].Name, "henry0");
  36.             Assert.AreEqual(items[9].Name, "henry9");
  37.             items = lst.Range(5, 7);
  38.             Assert.AreEqual(items[0].Name, "henry5");
  39.             Assert.AreEqual(items[2].Name, "henry7");
  40.         }
复制代码
MapSet


  1. [TestMethod]
  2.         public void MapSet()
  3.         {

  4.             JsonMapSet map = "HENRY_INFO";
  5.             UserBase ub = new UserBase();
  6.             ub.Name = "henryfan";
  7.             ub.City = "gz";
  8.             ub.Counrty = "cn";
  9.             ub.Age = 10;
  10.             Contact contact = new Contact();
  11.             contact.EMail = "hernyfan@msn.com";
  12.             contact.QQ = "28304340";
  13.             contact.Phone = "13660223497";
  14.             map.Set(ub, contact);
  15.             IList data = map.Get();
  16.             Assert.AreEqual(ub.Name, ((UserBase)data[0]).Name);
  17.             Assert.AreEqual(contact.Phone, ((Contact)data[1]).Phone);

  18.         }
  19.         [TestMethod]
  20.         public void MapSetdRemove()
  21.         {
  22.             JsonMapSet map = "HENRY_INFO";
  23.             UserBase ub = new UserBase();
  24.             ub.Name = "henryfan";
  25.             ub.City = "gz";
  26.             ub.Counrty = "cn";
  27.             ub.Age = 10;
  28.             Contact contact = new Contact();
  29.             contact.EMail = "hernyfan@msn.com";
  30.             contact.QQ = "28304340";
  31.             contact.Phone = "13660223497";
  32.             map.Set(ub, contact);
  33.             map.Remove();
  34.             contact = map.Get();
  35.             Assert.AreEqual(null, contact);

  36.         }
  37.         [TestMethod]
  38.         public void MapSetClear()
  39.         {
  40.             JsonMapSet map = "HENRY_INFO";
  41.             UserBase ub = new UserBase();
  42.             ub.Name = "henryfan";
  43.             ub.City = "gz";
  44.             ub.Counrty = "cn";
  45.             ub.Age = 10;
  46.             Contact contact = new Contact();
  47.             contact.EMail = "hernyfan@msn.com";
  48.             contact.QQ = "28304340";
  49.             contact.Phone = "13660223497";
  50.             map.Set(ub, contact);
  51.             map.Clear();
  52.             IList data = map.Get();
  53.             Assert.AreEqual(null, data[0]);
  54.             Assert.AreEqual(null, data[1]);
  55.         }
复制代码


性能
16132113-fe55e022a3b44b44ba4ac6a786d6e86c.jpg

Sample
16132414-dbb67d3454284adc9c89aa68f96d55e5.jpg
下载

Beetle.Redis.0.6.6.5.rar (244.2 KB, 下载次数: 1)




上一篇:sessionState 配置方案之cookieless
下一篇:使用Redis之前5个必须了解的事情
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-2-27 23:30

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表