[那些年]在redis集群模式下使用lua脚本踩过的坑。

2,505 阅读1分钟

[那些年]在redis集群模式下使用lua脚本踩过的坑。

  • redis单节点

key都在同一个节点上;

  • redis集群

key经过算法后,会分布在不同的节点上;

  • lua脚本的限制

执行脚本中涉及到的key要在同一个节点上;

  • 解决方案

在key中使用‘{}’,redis计算key要保存到那个节点上时,是根据‘{}’它里面的值来计算的,只要这里面的值是相同的,就会保存到相同的节点上; 注意:保存的key也会带上‘{}’;

例如
{key}abcd、 {key}1234、abcd{key}1234

集群命令

  • 计算key会保存到的slot;

cluster keyslot {key}abcd

  • 查看各节点slot的分配情况;

cluster nodes