パターンにマッチする検索キーがのRedis:私はこのようなパターンにマッチするキーを見つけることができますどのように
abc:parent1
abc:parent2
:
私はいくつかのキーを持っていますabc:parent1:child1
abc:parent2:child2
にはどうすればいいだけ
abc:parent1
abc:parent2
パターンにマッチする検索キーがのRedis:私はこのようなパターンにマッチするキーを見つけることができますどのように
abc:parent1
abc:parent2
:
私はいくつかのキーを持っていますabc:parent1:child1
abc:parent2:child2
にはどうすればいいだけ
abc:parent1
abc:parent2
キーは、動作の仕方によって本番では実行されないコマンドとして特に言及されています。ここで必要なのは、あなたのキーのインデックスを作成することです。目的のパターンのキー名を保存するには、set
を使用します。新しいweキーを追加するときに、その名前をセットに追加します。あなたがリストを必要とするとき
Set abc:parent1:child1 breakfast
Sadd abc:parent1:index abc:parent1
は次に:たとえば
Smembers abc:parent1
は「悪」キーコマンドを使用して関連付けられた罰則や問題もなく、あなたのリストが表示されます。さらに、キー削除時にsremove
のエントリを削除します。また、1回の呼び出しでインデックスに含まれるキーの数を知ることができます。
キーの代わりにインデックスSCAN
を使用することは絶対に確実に避けなければなりません。キーを考慮する必要があるのは、デバッグスレーブを実行している場合だけです。デバッグスレーブを使用している唯一のプロセスはデバッグプロセスです。
コマンドKEYSパターン 同じのためにあなたを助ける見つけることができます。
例:
redis> MSET one 1 two 2 three 3 four 4
OK
redis> KEYS *o*
1) "two"
2) "one"
3) "four"
あなたの具体的な例については、以下のコマンドが動作します:
redis 127.0.0.1:6379> keys *parent[0-9]
1) "abc:parent2"
2) "abc:parent1"
ここthe detailed description of the commandです。
更新:上記の提案は、あなたが所望の出力を得ることができますけれども他の人が述べたように、RedisのKEYSコマンドは悪です。 KEYSはブロックしており、レスポンスを準備する際に多くのRAMを消費する可能性があります。
通常のアプリケーションコードではKEYSを使用しないでください。キースペースのサブセットでキーを見つける方法を探している場合は、SCANまたはセットの使用を検討してください。
ありがとう本当のビルとItamar、私はより良い理解を得ました。
'KEYS'は悪いです... –
' permission:/ url1/[id:sub:write:]と 'permission:/ url1/id:^/] + ' – Natim
これはどうやって動作するのかよくわかりません。あなたの例では、実際には 'set abc:parent1:child1 breakfast'とし、' sadd abc:parent1 child1'ですか? – Automatico
いいえ、OPは子供のみではなく親のレベルにしたいからです。 –
質問を誤解しました。明確にしていただきありがとうございます。 – Automatico