从Redis中调用Lua脚本时,可以在两个数组中传递值:KEYS和ARGV.有什么不同?Redis如何处理KEYS数组中的值?如果在我的脚本中,我必须使用在运行时动态生成的密钥,该怎么办?
Ita*_*ber 21
您的所有问题都在EVAL页面上得到解答,但自从您提出问题后:
有什么不同?
KEYS用于传递键名,而ARGS应该是其他任何东西.这并没有完全执行(即大多数时候你可以将它们混合)但如果不遵循则可能导致潜在的问题.
Redis如何处理KEYS数组中的值?
KEYS检查内容以验证所有密钥是否可用于运行脚本的Redis分片.此机制适用于允许在Redis群集部署中运行脚本.
如果在我的脚本中,我必须使用在运行时动态生成的密钥,该怎么办?
看到以前的答案 - 这是可行的,但你反对的建议.您的脚本只能在独立的Redis实例上运行,并且由于未指定此行为,因此在将来的版本中可能会中断.