gpt4 book ai didi

redis - 为什么 Redis 禁止用户脚本调用其他脚本?如何保持 Lua 脚本的可维护性

转载 作者:可可西里 更新时间:2023-11-01 11:00:56 25 4
gpt4 key购买 nike

Redis 禁止在用户脚本中使用“EVAL”和“EVALSHA”等命令。我们可以从 scuh 禁令中获益什么?

绕过此限制的一种方法是将所有 Lua 脚本合并为一个。但是,它违反了脚本的可维护性。他们有更好的解决方案吗?

最佳答案

Redis 禁止这样做,因为写入操作的可复制性。

脚本的 SHA1 校验和应该描述 Lua 脚本所做的一切。当脚本和数据被复制并在 Redis 从属服务器上执行时,结果应该完全相同。

因此,具有随机性质的功能,如 randtime 被排除在写入操作之外。为什么 evalevalsha 也被禁止读取脚本,可能是因为它使“is-write-script”分析变得不可能或至少很麻烦。

有关如何解决此问题的可能解决方案,请参阅 this发布。

当连接到不同的redis服务器时,我们使用这种SHA1响应值回送机制,参见这个diagram .

希望这有帮助,TW

关于redis - 为什么 Redis 禁止用户脚本调用其他脚本?如何保持 Lua 脚本的可维护性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com