Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस में ग्रुप बाय कैसे करें

आप यह कर सकते हैं

एक लुआ लिपि में जिसका नाम script.lua है

local hash_val = redis.call('hgetall',KEYS[1])
local result = {}
for i = 0 , #hash_val do
    if hash_val[i] == ARGV[1] then
        table.insert(result,hash_val[i-1])
        table.insert(result,hash_val[i])
    end
end
return result

लुआ अनुक्रम key0,val0,key1,val1, आदि द्वारा हैश प्राप्त करें...

और आप इसे इस तरह से कॉल कर सकते हैं:

redis-cli  eval "$(cat script.lua)" 1 "my_hash" 1

आपके पास होगा :

1) "foo"
2) "1"
3) "bar"
4) "1"

यहां eval फ़ंक्शन के लिए अधिक जानकारी

संपादित करें: जैसा कि टिप्पणी में कहा गया है, केवल मूल्यों की जांच के लिए और अनावश्यक जांच न करें, आप लूप के लिए 2 से कदम उठा सकते हैं क्योंकि हैश अनुरोध का प्रतिपादन कुंजी, मान, कुंजी, मान, आदि है ...:

local hash_val = redis.call('hgetall',KEYS[1])
local result = {}
for i = 2 , #hash_val, 2 do
    if hash_val[i] == ARGV[1] then
        table.insert(result,hash_val[i-1])
        table.insert(result,hash_val[i])
    end
end
return result



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस में रेंज क्वेरी - स्प्रिंग डेटा रेडिस

  2. क्या आप Amazon के बाहर Amazon ElastiСache Redis से जुड़ सकते हैं?

  3. इस जीवेंट प्रोग्राम में रेडिस से केवल एक ही कनेक्शन क्यों बनाया गया था?

  4. रेडिस को बंद करना

  5. phpredis MAC OSX स्थापित करें