所以我已经阅读了有关流水线和多/执行命令的内容。但是一直没能回答这个问题。我可以在redis中的操作B中使用操作A的结果,而不是将它们从redis中取出来吗?这可以用 Lua 脚本来完成吗?这在redis中自然完成吗?我能否以特定方式映射结果?
最佳答案
是的,您可以使用脚本,但限制是它不能很好地与 Redis 集群(无论如何尚未发布)配合使用。
这是一个用 Ruby 编写的示例,但如果您的 Redis 客户端支持 EVAL,您可以用任何语言来编写:
require "redis"
redis = Redis.new
redis.hset("foo","bar","baz")
redis.set("baz",42)
script = <<EOS
local k = redis.call("hget","foo",ARGV[1])
return redis.call("get",k)
EOS
puts redis.eval(script,keys:[],argv:["bar"])
此代码段打印 42
。
关于lua - Redis 链接命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807860/