https://www.cnblogs.com/xiaodf/p/11002184.html
- 本文旨在介绍一种在Redis集群模式下提供Pipeline批量操作的功能。
- 基本思路就是根据redis cluster对数据哈希取模的算法,
- 先计算数据存放的slot位置,
- 然后根据不同的节点将数据分成多批,
- 对不同批的数据进行单点pipeline处理。
- 但是需要注意的是,由于集群模式存在节点的动态添加删除,且client不能实时感知(只有在执行命令时才可能知道集群发生变更),
- 因此,该实现不保证一定成功,建议在批量操作之前调用 refreshCluster() 方法重新获取集群信息。
- 应用需要保证不论成功还是失败都会调用close() 方法,否则可能会造成泄露。
- 如果失败需要应用自己去重试,因此每个批次执行的命令数量需要控制,防止失败后重试的数量过多。
- 基于以上说明,建议在集群环境较稳定(增减节点不会过于频繁)的情况下使用,且允许失败或有对应的重试策略。
来源:oschina
链接:https://my.oschina.net/u/3847203/blog/4459078