その質問への回答は、単一のDEL
で複数のキーを削除しようとします 。ただし、指定されたパターンに一致するキーが同じスロットに配置されていない可能性があり、これらのキーが同じスロットに属していない場合、Redisクラスターはマルチキーコマンドをサポートしません。そのため、エラーメッセージが表示されます。
この問題を修正するには、DEL
する必要があります これらのキーを1つずつ:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
-L
xargs
のオプション コマンドは、削除するキーの数を指定します。このオプションを1
として指定する必要があります 。
パターンに一致するすべてのキーを削除するには、クラスター内のすべてのマスターノードに対して上記のコマンドを実行する必要もあります。
注
-
このコマンドでは、これらのキーを1つずつ削除する必要があり、非常に時間がかかる場合があります。データベースの再設計を検討し、ハッシュタグを使用する必要があります パターンに一致するキーを同じスロットに属するようにします。これらのキーを1つの
DEL
で削除できるようにします 。 -
SCAN
のいずれか またはKEYS
コマンドは非効率的です、特にKEYS
本番環境では使用しないでください。これらのキーのインデックスを作成することを検討する必要があります。