sql >> データベース >  >> NoSQL >> Redis

Redisクラスターでパターンに一致するキーを削除する方法

    その質問への回答は、単一のDELで複数のキーを削除しようとします 。ただし、指定されたパターンに一致するキーが同じスロットに配置されていない可能性があり、これらのキーが同じスロットに属していない場合、Redisクラスターはマルチキーコマンドをサポートしません。そのため、エラーメッセージが表示されます。

    この問題を修正するには、DELする必要があります これらのキーを1つずつ:

    redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
    

    -L xargsのオプション コマンドは、削除するキーの数を指定します。このオプションを1として指定する必要があります 。

    パターンに一致するすべてのキーを削除するには、クラスター内のすべてのマスターノードに対して上記のコマンドを実行する必要もあります。

    1. このコマンドでは、これらのキーを1つずつ削除する必要があり、非常に時間がかかる場合があります。データベースの再設計を検討し、ハッシュタグを使用する必要があります パターンに一致するキーを同じスロットに属するようにします。これらのキーを1つのDELで削除できるようにします 。

    2. SCANのいずれか またはKEYS コマンドは非効率的です、特にKEYS 本番環境では使用しないでください。これらのキーのインデックスを作成することを検討する必要があります。



    1. カスタムBSONマーシャリングの処理

    2. Express.jsとは何ですか?

    3. Puppetを使用したMongoDBレプリカセットとシャードのデプロイの基本

    4. MongoDB $ ln