Redisは、キーを一括削除する方法を提供していません。ただし、redis-cliと少しのコマンドラインマジックを使用して、redisをブロックせずにキーを一括削除できます。
このコマンドは、ユーザーに一致するすべてのキーを削除します:*
redis-cli --scan --pattern users:* | xargs redis-cli del
redis 4.0以降を使用している場合は、代わりにunlinkコマンドを使用してバックグラウンドでキーを削除できます。
redis-cli --scan --pattern users:* | xargs redis-cli unlink
スクリプトはどのように機能しますか?
- まず、
redis-cli --scan --pattern <pattern>
を使用します キーのリストを取得するには、1行に1つのキーを使用します。これはスキャンを使用するため、redisサーバーはブロックされません。 -
xargs
複数の行を取り、それらを同じ行に結合するため、基本的にコマンドdel <key1> <key2>...
を実行します。 - パターンに一致するキーが数千ある場合、xargsは自動的にredis-cliを複数回実行します。
- ハッシュ内のフィールドの名前を変更する
- 有効期限を複数のキーに設定
- スキャンを使用して複数のキーの名前を変更する
- Redis用のRDBToolsGUIを使用すると、一括アクションをプレビューでき、Redisのデータを管理するための強力なGUIが提供されます。無料でダウンロードできます!