に特殊文字を持つキーの数十万人を削除するには、どのように我々は、特殊文字のすべての種類を含むRedisのキーの数十万人のリストを持っていると我々は、バルク、それらを削除したいと思います。この質問に同様の問題にいくつかの素晴らしい答えがあります:私たちは、キー(数百の数が多いは、バルクのRedis
- :How to atomically delete keys matching a pattern using Redis
しかし、私はケースのための答えを見つけるように見えることはできません何千人)
- キーがすべてなど、二重引用符( ")、バックスラッシュ(などの特殊文字のマナー)、変なのUnicode文字のすべての種類、
- 我々はWindowsを使用しているを持っているのRedis-CLIクライアント
- ボーナス:理想的には、このコマンドを同等レベルで発行することができますtをMULTI/EXECトランザクションのために使用することができます。
redis-cli SMEMBERS "myGiganticListOfKeys" | xargs --delim='\n' redis-cli DEL
残念ながら、これだけの下に示します:私たちは以下のような何かを行うが、それはRedisの問題を与える特殊文字のすべてでキーを扱う持っていることができれば、私は大好きだ
エラー:私たちは、キーに特殊文字を持っていなかった場合、これはそうでない仕事だと思う
"C:/Program Files (x86)/Git/bin/xargs.exe": redis-cli: Bad file number
。事前にそんなに
感謝。
私はWindowsフォークに慣れていませんが、redis-cliが--pipeスイッチをサポートしている場合は、すべての 'DEL'コマンドを含むテキストファイルを準備し、直接パイプすることができます。 –
@RyanVincent私たちは実際に、削除したいキーの正確なリストを持っています。それらはセットに入っています。問題は、そのセット(たとえば、SMEMBERS "myKeyName")を取り、多数の番号があるときにそれらをすべて削除し、キーに特殊文字がある場合です。 – jakejgordon
アイデア@ItamarHaberに感謝しますが、それでもうまくいきました - それは、私が思うように、それはちょうどSMEMBERS mykeyNameから利用可能なキーのリストを持っていることとは違うとは思わないでしょう - それほど実用的ではありません指定したセットに含まれるすべてのキーを削除するために、再利用可能なPowerShellスクリプトを作成しようとしています。このプロセスの一環として一時ファイルを作成し、それをクリーンアップするのは理想的ではありません。しかし、ありがとう。 – jakejgordon