Redis客戶端選型再分析

FeelTouch發表於2019-03-05

前言

當使用者讀到該篇文章時,大概率都在使用或準備即將使用Redis以及Jedis,這幾乎成了共識,尤其在SpringBoot 的良好支援下,採用Jedis幾乎成為了順理成章的事,儘管如此,我們還是應該把眼界放得再開些。

官方推薦的有三種:Jedis、Redisson和lettuce。

Jedis

  • 輕量,簡潔,便於整合和改造
  • 支援連線池
  • 支援pipelining、事務、LUA Scripting、Redis Sentinel、Redis Cluster
  • 不支援讀寫分離,需要自己實現
  • 文件少,用例多,估計因為太簡單了

Redisson

  • 基於Netty實現,採用非阻塞IO,效能高
  • 支援非同步請求
  • 支援連線池
  • 支援pipelining、LUA Scripting、Redis Sentinel、Redis Cluster
  • 不支援事務,官方建議以LUA Scripting代替事務
  • 支援在Redis Cluster架構下使用pipelining
  • 支援讀寫分離,支援讀負載均衡,在主從複製和Redis Cluster架構下都可以使用
  • 內建Tomcat Session Manager,為Tomcat 6/7/8提供了會話共享功能
  • 可以與Spring Session整合,實現基於Redis的會話共享
  • 文件較豐富,有中文文件

Lettuce

  • 與 Jedis 相比,Lettuce 則完全克服了其執行緒不安全的缺點。
  • Lettuce 是一個可伸縮的執行緒安全的 Redis 客戶端,支援同步、非同步和響應式模式。多個執行緒可以共享一個連線例項,而不必擔心多執行緒併發問題。
  • 它基於優秀 Netty NIO 框架構建。
  • 支援 Redis 的高階功能,如 Sentinel,叢集,流水線,自動重新連線和 Redis 資料模型。
     

相關文章