Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Apakah ada perintah di Redis untuk struktur data HASH yang mirip dengan MGET?

Tidak ada perintah seperti itu, hash redis bekerja di dalam hash, jadi HMGET bekerja di dalam satu hash dan memberikan semua bidang dalam hash itu. Tidak ada cara untuk mengakses semua bidang dalam beberapa hash sekaligus .

Namun Anda dapat menggunakan beberapa HMGET pada setiap hash dan mendapatkan semua bidang. Anda dapat menyalurkan perintah ini untuk dijalankan dalam sekali jalan.

Opsi 1 Mantan. implementasi dalam kode semu

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

Opsi 2 Opsi lainnya adalah menulis skrip LUA dan memanggilnya menggunakan 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

Hubungi lua sctipt

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. Bagaimana menerapkan multitenancy untuk redis di boot musim semi

  2. Bagaimana cara men-debug kesalahan perintah OOM tidak diizinkan saat menggunakan memori> 'maxmemory' di Redis?

  3. Menggunakan memcached atau Redis di aws-elasticache

  4. Bagaimana cara melakukan Persistence Store di Redis?

  5. Tidak dapat menghubungkan Redis Cluster di Elasticache ke PHP menggunakan perpustakaan phpredis