Jedis vs Redisson,到底怎么選?


本文主要內容對比Redis的兩個框架:Jedis與Redisson,分析各自的優勢與缺點,為項目中Java緩存方案中的Redis編程模型的選擇提供參考。

Jedis與Redisson

Jedis是Redis的Java實現的客戶端,其API提供了比較全面的Redis命令的支持;

Redisson實現了分布式和可擴展的Java數據結構,和Jedis相比,功能較為復雜,不僅支持字符串操作,且還支持排序、事務、管道、分區等Redis特性。

Redisson的宗旨是促進使用者對Redis的關注分離,從而讓使用者能夠將精力更集中地放在處理業務邏輯上。

編程模型

Jedis中的方法調用是比較底層的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持着一致,了解Redis的API,也就能熟練的使用Jedis。

而Redisson中的方法則是進行比較高的抽象,每個方法調用可能進行了一個或多個Redis方法調用。

如下分別為Jedis和Redisson操作的簡單示例:

Jedis jedis = …;  
  
jedis.set("key", "value");  
  
List<String> values = jedis.mget("key", "key2", "key3");

Redisson操作map:

Redisson redisson = …  
  
RMap map = redisson.getMap("my-map"); // implement java.util.Map  
  
map.put("key", "value");  
  
map.containsKey("key");  
  
map.get("key");

可伸縮性

Jedis使用阻塞的I/O,且其方法調用都是同步的,程序流需要等到sockets處理完I/O才能執行,不支持異步。Jedis客戶端實例不是線程安全的,所以需要通過連接池來使用Jedis。

Redisson使用非阻塞的I/O和基於Netty框架的事件驅動的通信層,其方法調用是異步的。Redisson的API是線程安全的,所以可以操作單個Redisson連接來完成各種操作。

數據結構

Jedis僅支持基本的數據類型如:String、Hash、List、Set、Sorted Set

Redisson不僅提供了一系列的分布式Java常用對象,基本可以與Java的基本數據結構通用。

還提供了許多分布式服務,其中包括(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可提供更便捷的方法。

第三方框架整合

  • Redisson提供了和Spring框架的各項特性類似的,以Spring XML的命名空間的方式配置RedissonClient實例和它所支持的所有對象和服務;

  • Redisson完整的實現了Spring框架里的緩存機制;

  • Redisson在Redis的基礎上實現了Java緩存標准規范;

  • Redisson為Apache Tomcat集群提供了基於Redis的非黏性會話管理功能。該功能支持Apache Tomcat的6、7和8版。

  • Redisson還提供了Spring Session會話管理器的實現。

作者:McBye
https://www.cnblogs.com/mcbye/archive/2017/08/18/Jedis-VS-Redisson.html

推薦去我的博客閱讀更多:

1.Java JVM、集合、多線程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架構、阿里巴巴等大廠最新面試題

覺得不錯,別忘了點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM