在Redis中调用Lua脚本时,可以通过两个数组KEYS和ARGV传递值。它们有什么区别?Redis如何处理KEYS数组中的值?如果我在脚本中需要使用运行时动态生成的键会怎样?
在Redis中调用Lua脚本时,可以通过两个数组KEYS和ARGV传递值。它们有什么区别?Redis如何处理KEYS数组中的值?如果我在脚本中需要使用运行时动态生成的键会怎样?
EVAL
页面得到解答,但是既然你问了...:
有什么区别?
KEYS
用于传递键名,而ARGS
应该用于其他任何内容。这并不是严格执行的(即大多数情况下混合使用也可以),但如果不遵循可能会导致潜在的问题。
Redis如何处理KEYS数组中的值?
检查KEYS
的内容以验证所有键是否对正在运行脚本的Redis分片可用。此机制存在是为了允许在Redis集群部署中运行脚本。
如果我的脚本需要在运行时动态生成键怎么办?
请参见之前的答案-这是可行的,但你会违反建议。你的脚本只能在独立的Redis实例上安全运行,并且由于此行为未指定,它可能会在未来的版本中发生更改。
SORT mySet BY myHash:*->order GET myHash:*->name
的 SORT 命令中?我能传递myHash:*
或类似的东西吗? - Schovi