Không có lệnh nào như vậy, các hàm băm redis hoạt động trong hàm băm, vì vậy HMGET hoạt động bên trong một hàm băm và cung cấp tất cả các trường trong hàm băm đó. Không có không có cách nào để truy cập tất cả các trường ở nhiều hàm băm .
Tuy nhiên, bạn có thể sử dụng một số HMGET trên mỗi hàm băm và lấy tất cả các trường. bạn có thể chuyển các lệnh này để thực thi trong một lần.
Tùy chọn 1 Bán tại. triển khai trong mã giả
Pipeline p
List<String> = p.hgetall('key1', fields...);
List<String> = p.hgetall('key2', fields...);
List<String> = p.hgetall('key3', fields...);
p.exec();
Tùy chọn 2 Tùy chọn khác là viết một tập lệnh LUA và gọi tập lệnh đó bằng 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
Gọi cho sctipt lua
redis-cli EVAL "$(cat test.lua)" 0
1) 1) "field1"
2) "val"
2) 1) "field1"
2) "val"
3) "field2"
4) "val2"