所以我读过有关流水线操作和multi / exec命令的内容。但一直未能回答这个问题。我可以在redis中的操作B中使用操作A的结果,以免将它们从redis中取出。这可以用Lua脚本来完成吗?这是在redis中自然完成的吗?我可以以特定方式映射结果吗?
答案 0 :(得分:4)
是的,您可以使用Scripting,因为它不能与Redis Cluster(目前尚未发布)配合使用。
这是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
。
答案 1 :(得分:2)
这不是基于lua的答案,但你可能想看一些在redis上存储操作结果的标准命令: