Redis .NET开源组件Beetle.Redis
Redis .NET开源组件Beetle.Redis
Beetle.Redis是一款开源的Redis Client for .net组件,它提供非常简便的操作方式可以让开发人员轻松地访问Redis,同时提供json和protobuf的数据格式支持.基于连接池的默认访问方式可以让开发人员简洁高效地访问redis同时,而不必关心线程和连接同步等一系列复杂的事情.
配置
组件在使用前要进行配置,主要用于描述访问Redis的信息,分别是读写服务表列.
<configSections>
<section name="redisClientSection" type="Beetle.Redis.RedisClientSection, Beetle.Redis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</configSections>
<redisClientSection dB="0" xmlns="urn:Beetle.Redis">
<writes>
<add host="192.168.0.105" connections="9"/>
</writes>
<reads>
<add host="192.168.0.105" connections="9"/>
</reads>
</redisClientSection>以上分别配置读/写服务地址,默认开启的连接数是9个,访问数据库是0;根据实际应用的需要读/写都可以配置多个redis服务信息.
使用
组件的使用非常简单,在使用前并不需要象其他redis client组件一样定义连接信息,组件在缺省的情况下会自动使用 redisClientSection的配置环境去操作相应的Redis服务.
- String Get/Set
StringKey key = "HENRY";
string Remark = "henryfan gz cn 18 henryfan@msn.com 28304340";
key.Set(Remark);
Assert.AreEqual(Remark, key.Get<string>());- Json Get/Set
JsonKey rk = "henry_json";
UserBase ub = new UserBase();
ub.Name = "henryfan";
ub.City = "gz";
ub.Counrty = "cn";
ub.Age = 10;
rk.Set(ub);
Assert.AreEqual(ub.Name, rk.Get<UserBase>().Name);- Protobuf Get/Set
ProtobufKey rk = "henry_protobuf";
UserBase ub = new UserBase();
ub.Name = "henryfan";
ub.City = "gz";
ub.Counrty = "cn";
ub.Age = 10;
rk.Set(ub);
Assert.AreEqual(ub.Name, rk.Get<UserBase>().Name);- List
[TestMethod]
public void LST_POP_PUSH()
{
ProtobufList<UserBase> lst = "USERS";
lst.Push(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
Assert.AreEqual("henry", lst.Pop().Name);
}
[TestMethod]
public void LST_REMOVE_ADD()
{
ProtobufList<UserBase> lst = "USERS";
lst.Add(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
lst.Add(new UserBase { Name = "bbq", Age = 18, City = "gz", Counrty = "cn" });
Assert.AreEqual("bbq", lst.Remove().Name);
}
[TestMethod]
public void LST_Length()
{
ProtobufList<UserBase> lst = "USERS";
lst.Clear();
lst.Add(new UserBase { Name = "henry", Age = 18, City = "gz", Counrty = "cn" });
lst.Add(new UserBase { Name = "bbq", Age = 18, City = "gz", Counrty = "cn" });
Assert.AreEqual(lst.Count(), 2);
}
[TestMethod]
public void LST_Region()
{
ProtobufList<UserBase> lst ="USERS";
lst.Clear();
for (int i = 0; i < 10; i++)
{
lst.Add(new UserBase { Name = "henry" + i, Age = 18, City = "gz", Counrty = "cn" });
}
IList<UserBase> items = lst.Range();
Assert.AreEqual(items[0].Name, "henry0");
Assert.AreEqual(items[9].Name, "henry9");
items = lst.Range(5, 7);
Assert.AreEqual(items[0].Name, "henry5");
Assert.AreEqual(items[2].Name, "henry7");
}- MapSet
[TestMethod]
public void MapSet()
{ JsonMapSet map = "HENRY_INFO";
UserBase ub = new UserBase();
ub.Name = "henryfan";
ub.City = "gz";
ub.Counrty = "cn";
ub.Age = 10;
Contact contact = new Contact();
contact.EMail = "hernyfan@msn.com";
contact.QQ = "28304340";
contact.Phone = "13660223497";
map.Set(ub, contact);
IList<object> data = map.Get<UserBase, Contact>();
Assert.AreEqual(ub.Name, ((UserBase)data[0]).Name);
Assert.AreEqual(contact.Phone, ((Contact)data[1]).Phone); }
[TestMethod]
public void MapSetdRemove()
{
JsonMapSet map = "HENRY_INFO";
UserBase ub = new UserBase();
ub.Name = "henryfan";
ub.City = "gz";
ub.Counrty = "cn";
ub.Age = 10;
Contact contact = new Contact();
contact.EMail = "hernyfan@msn.com";
contact.QQ = "28304340";
contact.Phone = "13660223497";
map.Set(ub, contact);
map.Remove<Contact>();
contact = map.Get<Contact>();
Assert.AreEqual(null, contact); }
[TestMethod]
public void MapSetClear()
{
JsonMapSet map = "HENRY_INFO";
UserBase ub = new UserBase();
ub.Name = "henryfan";
ub.City = "gz";
ub.Counrty = "cn";
ub.Age = 10;
Contact contact = new Contact();
contact.EMail = "hernyfan@msn.com";
contact.QQ = "28304340";
contact.Phone = "13660223497";
map.Set(ub, contact);
map.Clear();
IList<object> data = map.Get<UserBase, Contact>();
Assert.AreEqual(null, data[0]);
Assert.AreEqual(null, data[1]);
}
性能
Sample

下载
Redis .NET开源组件Beetle.Redis的更多相关文章
- .NET redis 客户端开源组件 FreeRedis (继 CSRedisCore 之后重写)
什么是 FreeRedis FreeRedis 是一款 .NET redis 客户端开源组件,以 MIT 协议开源托管于 github,目前支持 .NET 5..NETCore 2.1+..NETFr ...
- ELK(+Redis)-开源实时日志分析平台
################################################################################################### ...
- 分布式限流组件-基于Redis的注解支持的Ratelimiter
原文:https://juejin.im/entry/5bd491c85188255ac2629bef?utm_source=coffeephp.com 在分布式领域,我们难免会遇到并发量突增,对后端 ...
- 360开源的类Redis存储系统:Pika
Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika.有维护 Redis 经验的 DBA 维护 ...
- 测试Beetle.Redis+Web Api
在Web Api里用Beetle.Redis调用Redis服务端的TIME命令返回一个json格式,然后客户端是用的HttpTest4Net做的测试: CPU:I7-3770 内存:4G+4G 硬盘: ...
- redis的搜索组件 redis-search4j
redis-search4j是一款基于redis的搜索组件. 特点 1.基于redis,性能高效 2.实时更新索引 3.支持Suggest前缀.拼音查找(AutoComplete功能) 4.支持单个或 ...
- Springboot +redis+⾕歌开源Kaptcha实现图片验证码功能
Springboot +redis+⾕歌开源Kaptcha实现图片验证码功能 背景 注册-登录-修改密码⼀般需要发送验证码,但是容易被 攻击恶意调⽤ 什么是短信-邮箱轰炸机 手机短信轰炸机是批.循环给 ...
- 组件-------(一)redis系列--安装部署redis+实现redis分布式缓存 java+Spring+redis
目的:解决单机session不能共享问题,插入查询数据库时间效率问题,实现分布式缓存. 准备材料:Redis 下载链接 http://pan.baidu.com/s/1dEGTxvV 相关jar包如果 ...
- Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)
Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 我使用的是下面这个版本: 若没有资源的话,我在 ...
随机推荐
- jvm对大对象分配内存的特殊处理(转)
前段日子在和leader交流技术的时候,偶然听到jvm在分配内存空间给大对象时,如果young区空间不足会直接在old区切一块过去.对于这个结论很好奇,也比较怀疑,所以就上网搜了下,发现还真有这么回事 ...
- Swift——(三)Swift神奇的下划线
在Swift在.有许多神奇的下划线,在这里,我们将看到神奇的汇总,我希望能够帮助其他很多学习Swift朋友. @Author: twlkyao转载或者引用请保留此行. 1.格式化数字字面量 通 ...
- DataTable转化为List
public List<T> ConvertToList<T>(DataTable dt) where T : new() { // 定义集 ...
- 判断sqlserver对象是否存在
--查看对象是否已经存在 --数据库是否存在 --if exists (select * from sys.databases where name = ’数据库名’) -- dro ...
- DirectX11 学习笔记3 - 创建一个立方体 和 轴
该方案将在进一步的程序 面向对象. 独立的模型类.更像是一个框架. 其中以超过遇到了一个非常有趣的问题,.获得一晚.我读了好几遍,以找到其他的列子.必须放在某些功能Render里面实时更新,而不是仅仅 ...
- 深入struts2.0(五)--Dispatcher类
1.1.1 serviceAction方法 在上个Filter方法中我们会看到例如以下代码: this.execute.executeAction(request, response, m ...
- 常用批处理命令总结3之Find和FindStr
原文:常用批处理命令总结3之Find和FindStr find 作用:从文件中收索字符串 格式:find 参数 "字符串" 路径\文件名 参数: /V 显示所有未包含指定字符串的行 ...
- MVC验证11-对复杂类型使用jQuery异步验证
原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...
- MySQL 一般查询日志(General Query Log)
与大多数关系型数据库,日志文件是MySQL数据库的一个重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志.慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
- linux内核的冒险md来源释义# 14raid5非条块读
linux内核的冒险md来源释义# 14raid5非条块读 转载请注明出处:http://blog.csdn.net/liumangxiong 假设是非条块内读.那么就至少涉及到两个条块的读,这就须要 ...

