RedisCluster无法使用pipeline

僤鯓⒐⒋嵵緔 提交于 2020-08-15 12:44:40

https://www.cnblogs.com/xiaodf/p/11002184.html

  • 本文旨在介绍一种在Redis集群模式下提供Pipeline批量操作的功能。
    • 基本思路就是根据redis cluster对数据哈希取模的算法,
    • 先计算数据存放的slot位置,
    • 然后根据不同的节点将数据分成多批,
    • 对不同批的数据进行单点pipeline处理。
  • 但是需要注意的是,由于集群模式存在节点的动态添加删除,且client不能实时感知(只有在执行命令时才可能知道集群发生变更),
    • 因此,该实现不保证一定成功,建议在批量操作之前调用 refreshCluster() 方法重新获取集群信息。
  • 应用需要保证不论成功还是失败都会调用close() 方法,否则可能会造成泄露。
    • 如果失败需要应用自己去重试,因此每个批次执行的命令数量需要控制,防止失败后重试的数量过多。
    • 基于以上说明,建议在集群环境较稳定(增减节点不会过于频繁)的情况下使用,且允许失败或有对应的重试策略。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!