2011-06-08 73 views

回答

24

AFAIK的唯一方法是去引用它們。假設你有2個哈希值,如:{foo: 'bar', baz: 'qux'}

你最好分開存放,然後創建一個SET引用他們都:

HMSET myarr:0 foo bar baz qux 
SADD myarr myarr:0 
HMSET myarr:1 foo bar baz qux 
SADD myarr myarr:1 

然後你就可以通過查詢集中檢索他們都:SMEMBERS myarr,然後調用HGETALL <key>上所有返回鍵重建你的原始哈希數組。

我希望這是有道理的。如果你發現更聰明的方式,我會很樂意聽到它。

2

如果您使用支持json轉換的語言,您可以將您的散列轉換爲json並將其附加到列表中。您可以在Ruby中執行以下操作:

require 'rubygems' 
require 'redis' 
require 'json' 
require 'pp' 

redis = Redis.new(:host => '127.0.0.1', :port => 6379) 

h1 = { :k1 => 'v1', :k2 => 'v2' } 
redis.rpush('arr', h1.to_json) 

h2 = { :k3 => 'v3', :k4 => 'v4' } 
redis.rpush('arr', h2.to_json) 

hashes = redis.lrange('arr', 0, -1) 
hashes.map! { |x| JSON.parse(x) } 
pp hashes 
+0

這就是實現它的方法! – radtek 2018-03-09 22:05:29