2

所以我已经阅读了有关流水线和多/执行命令的信息。但一直无法回答这个问题。我可以在redis内部的操作B中使用操作A的结果,以免将它们从redis中取出。这可以用 Lua 脚本完成吗?这是在redis中自然完成的吗?我可以以特定方式映射结果吗?

4

2 回答 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 回答