生菜是否支持redis集群中的流水线操作?

时间:2019-09-03 05:32:18

标签: java pipeline redis-cluster lettuce

需要使用lettuce在redis-cluster模式下运行一批命令。对于应该在一个分区中运行的命令,我希望可以在一个节点中依次运行它们。

据我所知,莴苣可以通过将AutoFlushCommands状态设置为false来支持redis流水线。但是在redis-cluster模式下,该命令可以发送到一个分区中的不同节点。有什么办法可以避免这个问题?

1 个答案:

答案 0 :(得分:0)

至少根据莴苣,它确实如此:https://github.com/lettuce-io/lettuce-core/wiki/Pipelining-and-command-flushing

  

命令刷新是一个高级主题,在大多数情况下(即除非   您的用例是单线程批量导入应用程序)   因为Lettuce默认使用流水线。

这意味着,它默认情况下使用流水线,我不认为这是正确的还是明确的,因为它也提到了:

  

刷新是昂贵的系统调用,并且会影响性​​能。批处理   禁用自动冲洗

     

为每个连接设置AutoFlushCommands状态,因此   使用共享连接影响所有线程。如果你想省略   为此,请使用专用连接。 AutoFlushCommands状态   不能通过生菜连接池在池连接上进行设置。

这意味着,如果您想要真正的Redis流水线http://redis.io/topics/pipelining,则可以花一些额外的精力来做到这一点。

相关问题