2011-06-08 23 views
12

में हैश की सरणी कैसे स्टोर करें मैं लाल रंग में हैश की सरणी स्टोर करना चाहता हूं, इसे कोड करने का सबसे अच्छा तरीका क्या है?रेडिस

उत्तर

24

AFAIK उन्हें संदर्भित करने का एकमात्र तरीका है। मान लें कि आपके पास 2 हैश की एक सरणी है: {foo: 'bar', baz: 'qux'}

आप उन्हें अलग से स्टोर हैं, और फिर एक सेट उन सब का संदर्भ देता है बनाने के लिए:

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

यदि आप ऐसी भाषा का उपयोग कर रहे हैं जो जेसन रूपांतरण से/से समर्थन करता है, तो आप अपने हैश को जेसन में परिवर्तित कर सकते हैं और इसे एक सूची में जोड़ सकते हैं। आप रूबी में निम्न कार्य कर सकते हैं:

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