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. 我使用的是下面这个版本: 若没有资源的话,我在 ...
随机推荐
- 面向对象三大特征之多态——Java笔记(七)
多态: 同一个实体同时具有多种形式 编译时的类型有声明该变量时使用的类型决定,运行时的类型有实际赋值给变量的对象决定 如果编译时类型和运行时类型不同,就出现多态 例: clas ...
- 第12章 代理模式(Proxy Pattern)
原文 第12章 代理模式(Proxy Pattern) 代理模式 概述: 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要 ...
- 运营商网络採用SDN所面临的挑战(一)
运营商网络採用SDN所面临的挑战(一) Babak Samimi 将数据平面.控制平面与管理平面分隔开来所实现的软件定义网络(SDN)改善了OPEX及CAPEX,而且使得网络资源的集中调配和管理成为可 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...
- HDU 1598 find the most comfortable road (最小生成树) >>
Problem Description XX明星有许多城市,通过与一个陌生的城市高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流.每条SARS都对行驶 ...
- oracle_oracle中修改日期的显示格式
我的现在的日期格式是 ,要改成英文的需要输入一下命令: ALTER SESSION SET NLS_DATE_LANGUAGE=AMERICAN; 修改后变为: 同样也得若是英文要想 ...
- 【百度地图API】建立全国银行位置查询系统(五)——如何更改百度地图的信息窗口内容?
原文:[百度地图API]建立全国银行位置查询系统(五)--如何更改百度地图的信息窗口内容? 摘要: 酷讯.搜房.去哪儿网等大型房产.旅游酒店网站,用的是百度的数据库,却显示了自定义的信息窗口内容,这是 ...
- MSSQL Server 2008 数据库安装失败
1.Reporting Services目录临时数据库文件存在 出现这种问题的原因,是由于以前安装的SQL Server2008文件并没有卸载或删除干净造成 解决的办法如下: 找到 ...
- 基于C++ 苹果apns消息推送实现(2)
1.该模块的用途C++ 和 Openssl 代码 它实现了一个简单的apns顾客 2.配套文件:基于boost 的苹果apns消息推送实现(1) 3.最初使用的sslv23/sslv2/sslv3仅仅 ...
- Cocos2d-x学习笔记(14)(更新函数scheduleUpdate、进度计时器CCProgressTo、滚动视图CCScrollView)
一.scheduleUpdate 1.scheduleUpdate:此函数是CCNode的函数,每一个CCNode仅仅要调用scheduleUpdate更新函数,那么这个CCNode就会响应当前类的u ...

