小编典典

使用Redis Cluster,是否可以仅将哈希标签传递给eval?

redis

Redis文档上eval可以看到:

不应该代表键名

Redis集群教程中

哈希标签记录在Redis
Cluster规范中,但是要点是,如果密钥的{}中的括号之间有一个子字符串,则仅对字符串中的内容进行哈希处理,例如,此{foo}键和另一个{foo}
key保证在同一哈希槽中,并且可以在以多个key作为参数的命令中一起使用。

是否可以仅传递哈希标签,或者仅传递带有该哈希标签的一个键?我们希望eval的内容可以与由另一个键的内容确定的一组动态键一起使用,但是每个键都属于同一个hash标签。


阅读 483

收藏
2020-06-20

共1个答案

小编典典

是的, 应该 可以。

文档所述

必须在执行之前分析所有Redis命令,以确定该命令将对哪些键进行操作…。请注意,未强制执行此规则是为了向用户提供滥用Redis单实例配置的机会,而不会编写脚本与Redis
Cluster兼容。

因此,只要您确保脚本与Redis Cluster兼容,就可以不遵循此规则。这意味着对的调用EVAL应指定一组散列到一个且只有一个服务器的密钥。

仅使用单个键(例如{foo})就可以正常工作。

2020-06-20