1
有没有办法以1请求1响应的方式获得以下内容?给予Redis的与主要名称和为每个键设置作为原子的Redis流水线
与领域
我如何可以获取这些密钥的散列一气呵成一个Redis的哈希?
这样的事情,这是我能做的最好的(不知道这会工作,但你的想法)
hashes = []
keys = redis.smembers("myset")
redis.multi do
keys.map do |k|
hashes << redis.hgetall(k)
end
end
hashes = hash.map(&:value) # to resolve future values
但这确实至少两个请求(这是不是最好的,但确定),不知道如何Redis :: Future解析为值(如果它发送另一个请求或不)
我明白,使用多功能可以在一个网络请求中执行一切操作,不是吗? –
'MULTI'是一个事务的开始 - 它允许您立即提交或回滚所有更改,但它们仍然作为对Redis的单独调用执行。 – jmruc
事实上,尽管生成键名或从数据库中读取它们(例如'smembers')是违背了将“KEYS”数组参数用于Lua脚本的建议,并且在分片群集上运行会出现问题 –