Redis官方對(duì)Java語(yǔ)言的封裝框架推薦有十多種幽七,主要有:Jedis壹堰、Lettuce乙各、Redisson
1幾個(gè)框架的對(duì)比
三個(gè)框架都是在Java中對(duì)Redis操作的封裝。
1.1 Jedis
Jedis是Redis的Java實(shí)現(xiàn)的客戶(hù)端侈百,其API提供了比較全面的Redis命令的支持瓮下。支持基本的數(shù)據(jù)類(lèi)型如:String、Hash钝域、List讽坏、Set、Sorted Set例证。
優(yōu)點(diǎn):比較全面的提供了Redis的操作特性路呜,相比于其他Redis 封裝框架更加原生。
編程模型: 使用阻塞的I/O织咧,方法調(diào)用同步胀葱,程序流需要等到socket處理完I/O才能執(zhí)行,不支持異步操作笙蒙。Jedis客戶(hù)端實(shí)例不是線(xiàn)程安全的抵屿,所以需要通過(guò)連接池來(lái)使用Jedis。
1.2 Lettuce
官網(wǎng):https://lettuce.io/
github: https://github.com/lettuce-io/lettuce-core
高級(jí)Redis客戶(hù)端捅位,用于線(xiàn)程安全同步轧葛,異步和響應(yīng)使用搂抒,支持集群,Sentinel尿扯,管道和編碼器求晶。
優(yōu)點(diǎn):適合分布式緩存框架。
編程模型:基于Netty框架的事件驅(qū)動(dòng)的通信層衷笋,其方法調(diào)用是異步的芳杏。Lettuce的API是線(xiàn)程安全的,所以可以操作單個(gè)Lettuce連接來(lái)完成各種操作辟宗。
1.3 Redisson
官網(wǎng): https://redisson.org/
github: https://github.com/redisson/redisson
Redisson實(shí)現(xiàn)了分布式和可擴(kuò)展的Java數(shù)據(jù)結(jié)構(gòu)爵赵。Redisson不僅提供了一系列的分布式Java常用對(duì)象,基本可以與Java的基本數(shù)據(jù)結(jié)構(gòu)通用泊脐,還提供了許多分布式服務(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)
優(yōu)點(diǎn): 促使使用者對(duì)Redis的關(guān)注分離,讓使用者能夠?qū)⒕Ω械胤旁谔幚順I(yè)務(wù)邏輯上晨抡,提供很多分布式相關(guān)操作服務(wù),例如则剃,分布式鎖耘柱,分布式集合,可通過(guò)Redis支持延遲隊(duì)列棍现。
第三方框架整合:
- Redisson提供了和Spring框架的各項(xiàng)特性類(lèi)似的调煎,以Spring XML的命名空間的方式配置RedissonClient實(shí)例和它所支持的所有對(duì)象和服務(wù)
- Redisson在Redis的基礎(chǔ)上實(shí)現(xiàn)了Java緩存標(biāo)準(zhǔn)規(guī)范,并完整的實(shí)現(xiàn)了Spring框架里的緩存機(jī)制
- Redisson提供了Spring Session會(huì)話(huà)管理器的實(shí)現(xiàn)
編程模型:基于Netty框架的事件驅(qū)動(dòng)的通信層己肮,其方法調(diào)用是異步的士袄。Redisson的API是線(xiàn)程安全的,所以可以操作單個(gè)Redisson連接來(lái)完成各種操作谎僻。
1.4 總結(jié)
jedis中的方法調(diào)用是比較底層的暴露的Redis的API娄柳,也即Jedis中的Java方法基本和Redis的API保持著一致,了解Redis的API艘绍,也就能熟練的使用Jedis赤拒。而Redisson中的方法則是進(jìn)行比較高的抽象,每個(gè)方法調(diào)用可能進(jìn)行了一個(gè)或多個(gè)Redis方法調(diào)用诱鞠。
注:redis命令參考:http://redisdoc.com/