2012-11-18 16 views
6

私は多くのキー(約100)を持つredisを持っていますが、ClassAのタイプ(例のみ)からキーのみを選択したいと思います。Redisクライアント特定のクラスのGetAllキー

今はGetAllKeysを実行していて、すべての項目のforeachループに入り、関連するキーだけを選択しています。

関連するキーだけを選択し、それらをすべて1つの機能で取得することはできますか?私はGETALLをやっているとき、私は特定のキーを見つけるために、コードがお手伝いします後の周りの45

+0

これを行わないでください。 Redisはリレーショナルデータベースではありません。アプリケーションでKEYSコマンドを使用することは想定されていません。これはデバッグコマンドです。このデザインはRedisに比例しません。 –

答えて

4

取得する必要がありながら

は、私が唯一の2項目を取得、あなただけの特定のキーを取得し、文字列の後に*ワイルドカード文字を指定する必要がありますRedis Serverからダウンロードします。

using (RedisClient redisClient = new RedisClient("localhost")) 
{ 
     string searchString = "ClassA*"; 

     var getSpecificKeys = redisClient.SearchKeys(searchString); 

     foreach (var getKey in getSpecificKeys) 
     { 
      // operation 
     } 
    } 
+3

からhttp://redis.io/commands/keys 警告:KEYSは、本番環境でのみ使用する必要があるコマンドとして非常に注意してください。大きなデータベースに対して実行すると、パフォーマンスが低下する可能性があります。このコマンドは、キースペースレイアウトの変更など、デバッグと特殊操作を目的としています。通常のアプリケーションコードではKEYSを使用しないでください。キースペースのサブセットでキーを見つける方法を探している場合は、セットの使用を検討してください。 – DanB

+0

RedisClientの代わりにIDatabaseを使用するとどうなりますか?どのようにしてDB内のすべてのキーを取得できますか? – ayasha

関連する問題