そのようなコマンドはありません。redisハッシュはハッシュ内で機能するため、HMGETは1つのハッシュ内で機能し、そのハッシュ内のすべてのフィールドを提供します。 一度に複数のハッシュですべてのフィールドにアクセスする方法はありません 。
ただし、各ハッシュで複数の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
luasctiptに電話する
redis-cli EVAL "$(cat test.lua)" 0
1) 1) "field1"
2) "val"
2) 1) "field1"
2) "val"
3) "field2"
4) "val2"