在 Redis 集群模式下,加载 Lua 脚本返回的 SHA 值是否相同?

我正在使用 Lua 脚本执行两个与同一个键相关的操作,运行 Redis 集群模式,使用 Java jedis 库连接到 Redis 集群。

加载 Lua 脚本的语法如下所示

jedisCluster.loadScript(<ScriptString>, <Key>);

它返回 SHA 值,我可以在 jedis 集群中使用 evalsha 函数,如下所示

jedisCluster.evalsha(<ShaValue>, <Key Count>, <key>)

执行上述方法时,我会处理 NoScript 错误,并将重新加载脚本。

问题:如果我使用不同的键值来加载相同的脚本,SHA 值是否不同?如果两个键落在不同的集群中,则 SHA 值是否不同?

我正在尝试将此 SHA 值保存为字符串,并为所有键使用它。

我知道字符串的 SHA 值将相同,但我不确定 Redis 是否在生成 SHA 值之前添加了任何额外的信息。

点赞
用户3160475
用户3160475

脚本的 SHA1 摘要对于相同的脚本始终是相同的(您也可以在外部计算,例如使用 sha1sum 工具)。无论脚本输入多少个键和参数,在单实例和集群模式下都是如此。

2018-11-13 12:43:41