来自 eval
不应代表键名
哈希标签记录在 Redis 集群规范中,但要点是,如果键中的
方括号之间有子字符串,则仅对字符串内部的内容进行哈希处理,因此例如{}
和this{foo}key
是保证位于同一个哈希槽中,并且可以在具有多个键作为参数的命令中一起使用。another{foo}key
是否可以只传递哈希标签,或者只传递一个带有该哈希标签的键?我们希望 eval 的内容能够与由另一个键的内容确定的动态键集一起使用,但每个键都属于同一个哈希标签。
是的,应该有效。
如文档中所述:
在执行之前必须对所有 Redis 命令进行分析,以确定该命令将在哪些键上运行......请注意,不强制执行此规则,以便为用户提供滥用 Redis 单实例配置的机会,但代价是编写脚本与 Redis 集群不兼容。
所以不遵守这个规则也可以,只要你确保你的脚本与Redis Cluster兼容即可。这意味着对
EVAL
的调用应该指定一组散列到一个且仅一个服务器的密钥。
只需使用一个键(例如
{foo}
)就可以正常工作。