Não existe nenhum comando assim, redis hashes funcionam dentro do hash, então HMGET trabalha dentro de um hash e fornece todos os campos nesse hash. Não há como acessar todos os campos em vários hashes em um .
No entanto, você pode usar vários HMGET em cada hash e obter todos os campos. você pode canalizar esses comandos para serem executados de uma só vez.
Opção 1 Ex. Implementação em pseudocódigo
Pipeline p
List<String> = p.hgetall('key1', fields...);
List<String> = p.hgetall('key2', fields...);
List<String> = p.hgetall('key3', fields...);
p.exec();
Opção 2 Outra opção é escrever um script LUA e chamá-lo usando 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
Chame o sctipt da lua
redis-cli EVAL "$(cat test.lua)" 0
1) 1) "field1"
2) "val"
2) 1) "field1"
2) "val"
3) "field2"
4) "val2"