Nie ma takiego polecenia, skróty redis działają w obrębie hasza, więc HMGET działa w jednym haszu i podaje wszystkie pola w tym haszu. Nie ma nie ma możliwości uzyskania dostępu do wszystkich pól w wielu skrótach jednocześnie .
Możesz jednak użyć kilku HMGET w każdym hashu i uzyskać wszystkie pola. możesz potoku te polecenia, aby wykonać je za jednym razem.
Opcja 1 Były. implementacja w pseudokodzie
Pipeline p
List<String> = p.hgetall('key1', fields...);
List<String> = p.hgetall('key2', fields...);
List<String> = p.hgetall('key3', fields...);
p.exec();
Opcja 2 Inną opcją jest napisanie skryptu LUA i wywołanie go za pomocą 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
Zadzwoń do skryptu lua
redis-cli EVAL "$(cat test.lua)" 0
1) 1) "field1"
2) "val"
2) 1) "field1"
2) "val"
3) "field2"
4) "val2"