作者/翻譯:張冬洪,Redis中國(guó)用戶組主席
什么是Redisson?
Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data Grid)。它不僅提供了一系列的分布式的Java常用對(duì)象,還提供了許多分布式服務(wù)。其中包括Bitset, Set, MultiMap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish/Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service。Redisson提供了使用Redis的最簡(jiǎn)單和最便捷的方法。Redisson的宗旨是促進(jìn)使用者對(duì)Redis的關(guān)注分離(Separation of Concern),從而讓使用者能夠?qū)⒕Ω械胤旁谔幚順I(yè)務(wù)邏輯上。
項(xiàng)目介紹:https://github.com/redisson/redisson/wiki/Redisson%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D
特性&功能:
- 每個(gè)Redis服務(wù)實(shí)例都能管理多達(dá)1TB的內(nèi)存
- 完美的工作在云環(huán)境并且支持AWS ElastiCache,AWS ElastiCache Cluster 和 Azure Redis Cache
- 支持Redis單節(jié)點(diǎn)(single)模式、哨兵(sentinel)模式、主從(Master/Slave)模式以及集群(Redis Cluster)模式
- 程序接口調(diào)用方式采用異步執(zhí)行和異步流執(zhí)行兩種方式
- 數(shù)據(jù)序列化,Redisson的對(duì)象編碼類是用于將對(duì)象進(jìn)行序列化和反序列化,以實(shí)現(xiàn)對(duì)該對(duì)象在Redis里的讀取和存儲(chǔ)
- 單個(gè)集合數(shù)據(jù)分片,在集群模式下,Redisson為單個(gè)Redis集合類型提供了自動(dòng)分片的功能
- 提供多種分布式對(duì)象,如:Object Bucket,Bitset,AtomicLong,Bloom Filter 和 HyperLogLog等
- 提供豐富的分布式集合,如:Map,Multimap,Set,SortedSet,List,Deque,Queue等
- 分布式鎖和同步器的實(shí)現(xiàn),可重入鎖(Reentrant Lock),公平鎖(Fair Lock),聯(lián)鎖(MultiLock),紅鎖(Red Lock),信號(hào)量(Semaphonre),可過期性信號(hào)鎖(PermitExpirableSemaphore)等
- 提供先進(jìn)的分布式服務(wù),如分布式遠(yuǎn)程服務(wù)(Remote Service),分布式實(shí)時(shí)對(duì)象(Live Object)服務(wù),分布式執(zhí)行服務(wù)(Executor Service),分布式調(diào)度任務(wù)服務(wù)(Schedule Service)和分布式映射歸納服務(wù)(MapReduce)
- 更多特性和功能,請(qǐng)關(guān)注官網(wǎng):http://redisson.org

Redisson架構(gòu)
Redisson作為獨(dú)立節(jié)點(diǎn)可以用于獨(dú)立執(zhí)行其他節(jié)點(diǎn)發(fā)布到分布式執(zhí)行服務(wù) 和 分布式調(diào)度任務(wù)服務(wù)里的遠(yuǎn)程任務(wù)。架構(gòu)圖如下:

Redisson底層采用的是Netty 框架。支持Redis 2.8以上版本,支持Java1.6+以上版本。如果你現(xiàn)在正在使用其他的Redis的Java客戶端,那么Redis命令和Redisson對(duì)象匹配列表 能夠幫助你輕松的將現(xiàn)有代碼遷徙到Redisson框架里來。
性能
我們很多人都或多或少使用過Redis或了解過Redis,我們之所以選擇使用Redis,主要是基于Redis的高性能,對(duì)一般人的知識(shí)認(rèn)知,Redis的性能大約在55000 ~ 75000 QPS。然而對(duì)于Redisson Pro又將會(huì)帶給我們?cè)鯓拥捏@喜呢?
為了比較,我們選擇非常流行的Redis Java 客戶端 Jedis 和 Redisson Pro進(jìn)行對(duì)比。對(duì)比過程中主要選擇了非常通用的命令進(jìn)行壓測(cè):HSET,RPUSH、SADD、SET 和 INCR。
環(huán)境說明:
- 有效載荷大小為:6 bytes
- 測(cè)試所用機(jī)型:Core i7 3612QM 16GB內(nèi)存
- Benchmark 測(cè)試都是在同一機(jī)器上進(jìn)行,并且是針對(duì)單實(shí)例壓測(cè)
壓測(cè)結(jié)果展示:










總結(jié):
從上述提供的基準(zhǔn)壓測(cè)結(jié)果已經(jīng)非常清楚地表明Redisson Pro對(duì)于那些吞吐量和延遲敏感的系統(tǒng)是非常明智的選擇,Redisson Pro 要比Jedis 更能有效的充分利用現(xiàn)有的系統(tǒng)資源,從而提供高性能的服務(wù),從經(jīng)驗(yàn)中來看,Redisson Pro能夠提供高達(dá) 10w ~ 21.3w QPS,這也是官網(wǎng)極力推薦的原因(redis官網(wǎng)推薦https://redis.io/clients)。
到這里,或許你已經(jīng)非常充滿興趣了,但是仍然不解你的好奇心,那么就讓我來告訴你Redisson Pro 較開源版(Open Source)的區(qū)別吧 :)
Redisson PRO的主要優(yōu)點(diǎn):
- Redis集群管理API,可以通過程序化的方式操作所有redis-trib.rb里的功能
- Redis部署API,可以通過程序化的方式遠(yuǎn)程登錄一臺(tái)主機(jī)并部署、運(yùn)行Redis服務(wù)
- 針對(duì)大容量的Map和Set實(shí)現(xiàn)自動(dòng)分片的功能,把一個(gè)大集合分割成幾個(gè)小的集合,然后將他們分布在Redis集群里。好處在于整個(gè)操作對(duì)用戶透明,同時(shí)增加該集合的吞吐量
- 高速引擎,在高并發(fā)的情況下,專業(yè)版較開源版性能提升8倍,其中4倍吞吐量和兩倍的響應(yīng)速度
- 提供Dropwizard的統(tǒng)計(jì)功能,可以用來實(shí)現(xiàn)使用情況的可視化
- 更多介紹請(qǐng)參考:https://redisson.pro/
介紹到這里,不知道對(duì)大家有沒有一點(diǎn)點(diǎn)作用,如果能幫到你,此次整理總結(jié)就很欣慰了!對(duì)Redis中國(guó)用戶組(CRUG)有了解的同學(xué),很可能已經(jīng)知道了,CRUG是Redisson Pro中國(guó)區(qū)唯一授權(quán)代理經(jīng)銷商,為了給國(guó)內(nèi)的企業(yè)謀福利,通過CRUG購(gòu)買Pro版能夠享受更多更大的優(yōu)惠,另外為反饋社區(qū),回報(bào)技術(shù)群,首次對(duì)外發(fā)布《Redisson白皮書》,下載地址是:鏈接: https://pan.baidu.com/s/1bpISQMb 密碼: jc2t
購(gòu)買請(qǐng)聯(lián)系:crug@redis.cn 或致電:18612720739(張)垂詢
寫在最后:本文翻譯整理自https://github.com/redisson/redisson/wiki/1.-Overview 和 https://dzone.com/articles/redisson-pro-vs-jedis-which-is-faster,得到原作者Nikita Koksharow 允許。感謝另一位作者顧睿校審,有問題也可以通過我或直接聯(lián)系原作者。感謝大家閱讀~~~ 么么噠??