1

キーと値の両方を取得したい。今、私はこのようにやっています:

Set<String> keys = redisTemplate.keys("Tom*");
if (keys != null) {

   //get them one by one
   for (String key : keys) {
      String value = redisTemplate.opsForValue().get(key);
   }
}

まず、「abc」で始まるすべてのキーを取得する必要があります。次に、値を 1 つずつ取得します。

一度にキーと値の両方を取得できますか?

更新

ありがとうソヴェラン。
各ユーザーに関連付けられたいくつかのプロパティがあります。

1)Tom.loginTimes=3  
2)Tom.tradeMoneyCount=100 

Tom.loginTimes と Tom.tradeMoneyCount の 2 つの別個のキーを定義する前に。今、私は hmset を使うべきだと思います:

10.75.201.3:63790> hmset Tom loginTimes 3 tradeMoneyCount 100
OK
10.75.201.3:63790> hgetall Tom
1) "loginTimes"
2) "3"
3) "tradeMoneyCount"
4) "100"

ありがとう。

4

2 に答える 2

1

ハッシュはそれを行う正しい方法です。

keysコマンドに関しては、デバッグ目的で redis に追加されたものであり、本番環境で使用することを意図したものではありません。コマンドの redis ドキュメントkeysからの警告は次のとおりです。

警告: KEYSは、細心の注意を払って本番環境でのみ使用する必要があるコマンドと考えてください。大規模なデータベースに対して実行すると、パフォーマンスが低下する可能性があります。このコマンドは、デバッグおよびキースペース レイアウトの変更などの特別な操作を目的としています。通常のアプリケーション コードではKEYSを使用しないでください。キースペースのサブセットでキーを見つける方法を探している場合は、SCANまたはsetsの使用を検討してください。

于 2015-04-09T09:17:35.397 に答える