sql >> データベース >  >> NoSQL >> Redis

MGETに似たHASHデータ構造のコマンドがRedisにありますか?

    そのようなコマンドはありません。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"
    


    1. mongodbへの接続を確認する方法

    2. SpringBootアプリケーションでSpringSecurityとRedisを使用して現在認証されているユーザープリンシパルを取得するにはどうすればよいですか?

    3. クレームの有効期限が切れたRedisキュー

    4. 'メッセージ'リスナーでRedisを削除する方法