1. ホーム
  2. redis

[解決済み] レディス パターンに一致するキーを検索する

2022-02-05 06:46:53

質問

このようなパターンに一致するキーを見つけるにはどうしたらよいでしょうか。

例えば

鍵をいくつか持っています。

abc:parent1

abc:parent2

abc:parent1:child1

abc:parent2:child2

のみを見つけるにはどうしたらよいですか?

abc:parent1

abc:parent2

解決方法は?

Keysは、その仕組み上、本番で実行してはいけないコマンドとして特記されています。ここで必要なのは、キーのインデックスを作成することです。以下のコマンドを使います。 set を使用して、必要なパターンのキー名を格納します。新しいweキーを追加したら、その名前をセットに追加します。例えば

Set abc:parent1:child1 breakfast
Sadd abc:parent1:index abc:parent1

そして、リストが必要になったとき。

Smembers abc:parent1:index

これで、"evil" keysコマンドを使用した場合のペナルティや問題はなく、リストを得ることができます。さらに、エントリーを削除する場合は sremove キー削除時に また、1回の呼び出しでインデックスに含まれるキーの数を知ることができるという利点もあります。

もし、どうしてもインデックスを使用しないのであれば SCAN の代わりに、キーを使用します。キーを考慮する必要があるのは、デバッグスレーブを実行していて、それを使用するプロセスがデバッグプロセスだけである場合だけです。