如果你在网上搜索Redis
的Java
客户端,你会发现,大多数文献介绍的都是 Jedis。
不可否认,Jedis
是一个优秀的基于Java
语言的Redis
客户端。
但是,其不足也很明显:Jedis
在实现上是直接连接Redis-Server
,在多个线程间共享一个Jedis
实例时是线程不安全的,如果想要在多线程场景下使用Jedis
,需要使用连接池,每个线程都使用自己的Jedis
实例,当连接数量增多时,会消耗较多的物理资源
。
与Jedis
相比,Lettuce
则完全克服了其线程不安全的缺点:Lettuce
是一个可伸缩的线程安全的Redis
客户端,支持同步、异步和响应式模式。
多个线程可以共享一个连接实例
,而不必担心多线程并发问题。
它基于优秀Netty NIO
框架构建,支持Redis
的高级功能,如Sentinel
,集群,流水线,自动重新连接和Redis
数据模型。
PS:
如果您觉得我的文章对您有帮助,请关注我的微信公众号,谢谢!