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

क्या एमजीईटी के समान एचएएसएच डेटा संरचना के लिए रेडिस में कोई आदेश है?

ऐसा कोई आदेश नहीं है, रेडिस हैश हैश के भीतर काम करता है, इसलिए एचएमजीईटी एक हैश के अंदर काम करता है और उस हैश में सभी फ़ील्ड देता है। एक से अधिक हैश में सभी फ़ील्ड को एक साथ एक्सेस करने का कोई तरीका नहीं है

हालाँकि आप प्रत्येक हैश पर कई HMGET उपयोगकर्ता कर सकते हैं और सभी फ़ील्ड प्राप्त कर सकते हैं। आप इन आदेशों को एक बार में निष्पादित करने के लिए पाइपलाइन कर सकते हैं।

विकल्प 1 भूतपूर्व। छद्म कोड में कार्यान्वयन

Pipeline p
List<String> = p.hgetall('key1', fields...); 
List<String> = p.hgetall('key2', fields...);
List<String> = p.hgetall('key3', fields...);
p.exec(); 

विकल्प 2 अन्य विकल्प एक LUA स्क्रिप्ट लिखना और EVAL का उपयोग करके कॉल करना है

local array = {}
local keys = redis.call('KEYS', '<your pattern>')

for _,key in ipairs(keys) do
    local val = redis.call('HGETALL', key)
    array[#array + 1] = val
end

return array

लुआ स्किप्ट को बुलाओ

redis-cli EVAL "$(cat test.lua)" 0

1) 1) "field1"
   2) "val"
2) 1) "field1"
   2) "val"
   3) "field2"
   4) "val2"


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं रेडिस में सभी सेट कैसे प्राप्त कर सकता हूं?

  2. Redis सॉर्ट किए गए सेट में आंशिक कुंजी नाम का उपयोग करके मान ढूँढना

  3. सर्वाधिक ज्ञात नोएसक्यूएल सिस्टमों में मुख्य अंतर/विशेषताएं

  4. अत्यधिक उच्च मात्रा में डेटा के लिए कौन सा NoSQL डेटाबेस

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