RedisCluster不支持管道吗?
为啥呢
1 个回答
明知不可为而为之就是我最大的诚意夜太是的。一次pipeline会批量执行多个命令,那么每个命令都需要根据“key”运算一个槽位(JedisClusterCRC16.getSlot(key)),然后根据槽位去特定的机器执行命令,也就是说一次pipeline操作会使用多个节点的redis连接,而目前JedisCluster是无法支持的。 由于集群模式存在节点的动态添加删除,且client不能实时感知(只有在执行命令时才可能知道集群发生变更),因此,该实现不保证一定成功,建议在批量操作之前调用 refreshCluster() 方法重新获取集群信息。应用需要保证不论成功还是失败都会调用close() 方法,否则可能会造成泄露。如果失败需要应用自己去重试,因此每个批次执行的命令数量需要控制,防止失败后重试的数量过多。编辑于 2022-11-20 22:17 •IP属地 西藏举报评论收藏
公众号进入网站体验更佳

