Karmaşık diziyi redis'te saklamak istiyorum, kodlamanın en iyi yolu nedir?Redis'te karma dizisi saklamak için nasıl
12
A
cevap
24
AFAIK'in bunlara başvurmak için tek yolu. Sizin gibi 2 karma dizisi var: {foo: 'bar', baz: 'qux'}
.
Sen bunları ayrı ayrı saklamak ve daha sonra hepsini başvuran bir SET oluşturmak istiyorum:
SonraHMSET myarr:0 foo bar baz qux
SADD myarr myarr:0
HMSET myarr:1 foo bar baz qux
SADD myarr myarr:1
Eğer set sorgulayarak hepsini alabilirsiniz: SMEMBERS myarr
ve sonra tüm döndü tuşlarını HGETALL <key>
çağrı Orijinal karma dizinizi yeniden oluşturun.
Umarım bu mantıklıdır. Ve daha akıllı bir yol bulursanız bunu duymaktan mutluluk duyarım.
2
Json dönüşümü/dilini destekleyen bir dil kullanıyorsanız, karma öğenizi json'a dönüştürebilir ve listeye ekleyebilirsiniz. Aşağıdakileri Ruby'de yapabilirsin:
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
Bunu yapmanın yolu budur! – radtek