在 EVALSHA 中生成新密钥

文档 指出,必须明确传递密钥,因此如果使用 Redis 集群,则可以将命令转发到适当的节点。

然而,是否也适用于新密钥?例如,如果我有一个脚本来注册新实体,并且这个脚本动态地创建了一个完全由 INCR 和字面值组成的全新密钥,对于 Redis 集群来说会有问题吗?

另一种选择是在单独的操作中调用 INCR 并将密钥作为 KEY[1] 传递给脚本。

点赞
用户2395796
用户2395796

如果你仔细确保你的新 key 被哈希到与其它 key 相同的服务器上,我想你会没事的。

也就是说,Cluster 的关键不仅在于预先声明你的 key,而且要确保你的脚本操作的所有 key 都位于同一台服务器上。你可以通过使用 哈希标签 来实现。如果你构造新的 key,使其哈希到与其它 key 相同的槽位上,我认为它会正常工作。

2016-08-02 16:30:32