有关lettuce连接池的疑问

新手上路,请多包涵

网上很多介绍lettuce是这样说的:“Lettuce 是一个可伸缩的线程安全的 Redis 客户端,支持同步、异步和响应式模式。多个线程可以共享一个连接实例,而不必担心多线程并发问题。”
我理解的意思是多线程可以复用同一个redis连接。我通过netstat命令也看到程序启动后会创建两个redis 3306端口的连接,用jmeter压测时也并不会创建新的redis连接。那这个样子lettuce的连接池还有用吗?
先感谢各位啦。

阅读 15.1k
2 个回答

官网是这样说的:

有如下几种情况你不能在线程之间复用连接:
    1.请求批量下发,即禁止调用命令后立即flush
    2.使用`BLPOP`这种阻塞命令
    3.事务操作
    4.有多个数据库的情况

所以连接池还是有用的,但是对lettuce来说作用有限。而且目前貌似只提供了同步和异步连接池,想要通过连接池用响应式api应该就得自己实现了。

LettuceConnectionFactory 类里面有个参数 shareNativeConnection,默认为 true,意思是共用这一个连接,所以默认情况下 lettuce 的连接池是没有用的;如果需要使用连接池,shareNativeConnection 设置为 false 就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进