所以我已经阅读了有关流水线和多/执行命令的信息。但一直无法回答这个问题。我可以在redis内部的操作B中使用操作A的结果,以免将它们从redis中取出。这可以用 Lua 脚本完成吗?这是在redis中自然完成的吗?我可以以特定方式映射结果吗?
问问题
946 次
2 回答
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
.
于 2012-10-10T08:58:00.293 回答
2
这不是基于 lua 的答案,但您可能想查看一些在 redis 上存储操作结果的标准命令:
于 2012-10-09T20:33:43.700 回答