[那些年]在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