小编典典

为什么在调用Redis Lua脚本时会有KEYS和ARGV数组?

redis

从Redis调用Lua脚本时,可以在两个数组中传递值:KEYS和ARGV。有什么区别?Redis如何处理KEYS数组中的值?如果在我的脚本中必须使用运行时动态生成的密钥怎么办?


阅读 5065

收藏
2020-06-20

共1个答案

小编典典

您的所有问题都会在EVAL页面上得到回答,但是自从您问到…:

有什么区别?

KEYS用于传递键名称,而ARGS应用于其他任何名称。这不是完全强制执行的(即,大多数情况下您可以将它们混合使用),但如果不遵循,可能会导致潜在的问题。

Redis如何处理KEYS数组中的值?

KEYS检查的内容,以验证所有键都可用于运行脚本的Redis分片。可以使用此机制来允许在Redis群集部署中运行脚本。

如果在我的脚本中必须使用运行时动态生成的密钥怎么办?

查看先前的答案-可行,但您会违反建议。您的脚本仅在独立的Redis实例上运行是安全的,并且由于未指定此行为,因此在将来的版本中可能会中断。

2020-06-20