deerlet-redis-client添加集羣支持,邀請各路大神和菜鳥加入。

引言

  

  通過幾周的修改,deerlet已經添加了對於redis集羣的支持,策略與memcached客戶端同樣,採用一致性Hash。不過目前Hash的算法取自Java自帶的String類型的HashCode算法,所以還有待優化,後續會選取一個相對更加優秀的Hash算法。java

  目前deerlet的基本框架搭建以及小部分命令的支持已經完成,並附帶完整的單元測試。接下來主要要作的工做是補上剩下的命令的支持。這須要必定的工做量,LZ但願有猿友可以一塊兒完成。git

  

更新後的deerlet文檔

 

-----------------------------------------如下爲文檔--------------------------------------github

  

deerlet-redis-client

deerlet是一個簡單易用的redis for java客戶端,支持與spring無縫集成。redis

 

特性

1,輕量級,jar包只有25kb。
2,簡單易用,無侵入性。
3,能夠與當前流行的ioc容器spring無縫集成。
4,API徹底與redis命令保持一致,減小學習成本。
5,支持集羣,採用一致性hash策略。算法

 

使用示例(直接使用)

 

1.在classpath(好比eclipse中src下)路徑下添加如下文件,名爲deerlet.properties

#該屬性爲redis服務器ip和端口,支持集羣,以逗號隔開
address=localhost:6379spring

 

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:可選,指定鏈接池最大空閒鏈接數,默認爲20app

目前支持的命令

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哦。

相關文章
相關標籤/搜索