deerlet-redis-client添加集群支持,邀请各路大神和菜鸟加入。
引言
经过几周的修改,deerlet已经添加了对于redis集群的支持,策略与memcached客户端一样,采用一致性Hash。不过目前Hash的算法取自Java自带的String类型的HashCode算法,因此还有待优化,后续会选取一个相对更加优秀的Hash算法。
目前deerlet的基本框架搭建以及小部分命令的支持已经完成,并附带完整的单元测试。接下来主要要做的工作是补上剩下的命令的支持。这需要一定的工作量,LZ希望有猿友能够一起完成。
更新后的deerlet文档
-----------------------------------------以下为文档--------------------------------------
deerlet-redis-client
deerlet是一个简单易用的redis for java客户端,支持与spring无缝集成。
特性
1,轻量级,jar包只有25kb。
2,简单易用,无侵入性。
3,可以与当前流行的ioc容器spring无缝集成。
4,API完全与redis命令保持一致,减少学习成本。
5,支持集群,采用一致性hash策略。
使用示例(直接使用)
1.在classpath(比如eclipse中src下)路径下添加以下文件,名为deerlet.properties
#该属性为redis服务器ip和端口,支持集群,以逗号隔开
address=localhost:6379
2.使用以下编程式的方式即可使用deerlet
Configuration configuration = ConfigurationFactory.create().loadConfiguration();
ConnectionFactory connectionFactory = new ConnectionFactoryImpl(configuration);
DeerletRedisClient deerletRedisClient = new DeerletRedisClientImpl(connectionFactory);//获取client对象 deerletRedisClient.set("testKey","testValue");//存储一个键为testKey,值为testValue的键值对
System.out.println(deerletRedisClient.get("testKey"));//获取
System.out.println(deerletRedisClient.dbSize());//查看大小
deerletRedisClient.flushAll();//刷新
System.out.println(deerletRedisClient.dbSize());//查看大小
使用示例(与spring集成)
1.在spring的配置文件中加入如下bean定义
<bean id="deerletRedisClient" class="cn.zxl.deerlet.redis.client.spring.DeerletRedisClientFactoryBean">
</bean>
2.在classpath(比如eclipse中src下)路径下添加以下文件,名为deerlet.properties
#该属性为redis服务器ip和端口,支持集群,以逗号隔开
address=localhost:6379
3.使用以下编程式的方式即可使用deerlet
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("
classpath:applicationContext.xml");//初始化spring容器
DeerletRedisClient deerletRedisClient = applicationContext.getBean(DeerletRedisClient.class);//获取client对象
deerletRedisClient.set("testKey","testValue");//存储一个键为testKey,值为testValue的键值对
System.out.println(deerletRedisClient.get("testKey"));//获取
System.out.println(deerletRedisClient.dbSize());//查看大小
deerletRedisClient.flushAll();//刷新
System.out.println(deerletRedisClient.dbSize());//查看大小
deerlet.properties文件属性说明
address:必选,格式为 host1:port1,host2:port2....
initSize:可选,指定连接池初始连接数,默认为10
maxSize:可选,指定连接池最大连接数,默认为100
minIdleSize:可选,指定连接池最小空闲连接数,默认为10
maxIdleSize:可选,指定连接池最大空闲连接数,默认为20
目前支持的命令
del,dump,exists,expire,expireat,keys,migrate,move,object,persist,pexpire
,pexpireat,pttl,randomkey,rename,renamenx,restore,sort,ttl,type,scan
,append,bitcount,bitop,decr,decrby,get,getbit,getrange,getset,incr,incrby
,incrbyfloat,mget,mset,msetnx,psetex,set,setbit,setex,setnx,setrange,strlen
,lindex,linsert,llen,lpop,lpush,lpushx,lrange,lrem,lset,ltrim
,select,bgrewriteaof,bgsave,dbsize,flushall,flushdb
正在陆续添加中...欢迎您来一起加入
-----------------------------------------文档结束--------------------------------------
未来的规划
之前LZ一直在master上面做修改,为了接下来和大家更好的协作,LZ已经建立了一个1.x分支。建议大家在这个分支上进行push操作。在1.x分支上所有命令添加完毕,并且单元测试通过以后,将会发布deerlet-redis-client-1.0版本。之后关于1.0版本的bug修复和优化,也在1.x分支上进行。
此外,根据可靠消息,redis未来可能会在服务器端做集群,届时deerlet会根据redis的变化,进行相应的改动。只有deerlet有重大变革时,才会更改主版本号,因此大家基本上会在很长一段时间内在1.x分支上开发。
接下来的一小段时间内,deerlet主要要做的是以下两件事。
1,添加目前未支持的命令。
2,完善单元测试,确保稳定性。
如何加入
deerlet在github上面的地址为:https://github.com/xiaolongzuo/deerlet-redis-client
1,首先安装一下git,并将代码clone到本地,可以选择clone到时LZ创建的1.X分支。
git clone git@github.com:xiaolongzuo/deerlet-redis-client.git //下载源码
git -c core.quotepath=false checkout -b branch-1.x //切换到1.x分支
2,在本地电脑上下载并安装maven,或使用eclipse的maven插件都可以,因为deerlet的构建工具是maven。
3,在本地电脑上安装redis,并启动三个redis实例,端口分别为6379,6479,6666。
4,redis启动以后,运行mvn test命令看是否能够通过单元测试。
完成以上几步以后,deerlet已经可以在你本地运行。这时你就可以修复相应的bug,或者添加你所希望它具有的特性。记得,完事以后不要忘了push哦。
deerlet-redis-client添加集群支持,邀请各路大神和菜鸟加入。的更多相关文章
- redis主从、集群、哨兵
redis的主从.集群.哨兵 参考: https://blog.csdn.net/robertohuang/article/details/70741575 https://blog.csdn.net ...
- redis学习六 集群的原理(转载)
转载自 http://shift-alt-ctrl.iteye.com/blog/2285470 一.Redis Cluster主要特性和设计 集群目标 1)高性能和线性扩展,最大可以支撑到1 ...
- Spring Boot(十三):整合Redis哨兵,集群模式实践
前面的两篇文章(Redis的持久化方案, 一文掌握Redis的三种集群方案)分别介绍了Redis的持久化与集群方案 -- 包括主从复制模式.哨兵模式.Cluster模式,其中主从复制模式由于不能自动做 ...
- Redis进阶实践之十 Redis主从复制的集群模式
一.引言 Redis的基本数据类型,高级特性,与Lua脚本的整合等相关知识点都学完了,说是学完了,只是完成了当前的学习计划,在以后的时间还需继续深入研究和学习.从今天开始来讲一下有关Re ...
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- sentinel监控redis高可用集群(一)
一.首先配置redis的主从同步集群. 1.主库的配置文件不用修改,从库的配置文件只需增加一行,说明主库的IP端口.如果需要验证的,也要加多一行,认证密码. slaveof 192.168.20.26 ...
- 超详细的 Redis Cluster 官方集群搭建指南
今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...
- Redis+Twemproxy+HAProxy集群(转) 干货
原文地址:Redis+Twemproxy+HAProxy集群 干货 Redis主从模式 Redis数据库与传统数据库属于并行关系,也就是说传统的关系型数据库保存的是结构化数据,而Redis保存的是一 ...
- Redis实战——redis主从复制和集群实现原理
出自:https://blog.csdn.net/nuli888/article/details/52136822 redis主从复制redis主从配置比较简单,基本就是在从节点配置文件加上:slav ...
随机推荐
- Unity3D 实现简单的语音聊天 [iOS版本]
现在很多手机游戏中的聊天系统都加入语音聊天的功能,相比于传统的文字聊天,语音聊天在MMORPG中显得尤为重要,毕竟直接口头交流总比你码字快得多了,也更直观些. 实现语音聊天的方法很多,U3D中有不少第 ...
- Docker与容器快速入门
Docker之风席卷全球,但很多人觉得docker入门确实不太容易,其原因在于很多知识点上没准备好,在docker解决了什么问题.怎么解决的.用什么技术解决的都还没想清楚的时候就去探索docker组件 ...
- NOIP2012普及组 (四年后的)解题报告 -SilverN
本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...
- jmeter的使用(一)
1.下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter,打开jmeter.bat 3.添加线程组 4.添加http请求 5 ...
- DFS cdoevs 3100 蜗牛
cdoevs 3100 蜗牛 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 萨丽·斯内尔(Sally Snail,蜗牛)喜欢在 ...
- 传统高斯模糊与优化算法(附完整C++代码)
高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop.GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次 ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- POJ 3264 Balanced Lineup -- RMQ或线段树
一段区间的最值问题,用线段树或RMQ皆可.两种代码都贴上:又是空间换时间.. RMQ 解法:(8168KB 1625ms) #include <iostream> #include < ...
- maven总结2
依赖 maven版本:apache-maven-3.1.1 IDE: springsource 默认支持maven集成 若使用的是eclipse,则需要先安装m2ec ...
- 2014Ember带来怎样的变化?
每隔几个月的时间,Ember的核心团队就会聚在一起讨论目前遇到的各种问题,并决定下一季度需要优先处理的各种事务. 这一次,在俄勒冈州的波特兰,大家聚在一起,商讨2014年的发展方向. 开发工具 &am ...