ハッシュの配列をredisに保存したいのですが、それをコーディングする最良の方法は何ですか?
14908 次
2 に答える
37
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
次に、set:をクエリしてすべてを取得し、返されたすべてのキーをSMEMBERS myarr
呼び出しHGETALL <key>
て、元のハッシュの配列を再構築します。
これが理にかなっていることを願っています。そして、あなたがより賢い方法を見つけたら、私はそれを聞いてうれしいです。
于 2011-06-08T12:04:02.550 に答える
5
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
于 2013-03-26T13:09:54.887 に答える