1. はじめに
職場では、キャッシュされたコース データ「コース」など、特定のルールのキーをバッチで削除する必要がある状況によく遭遇します。 course uid"、Course uidは変数なので、"course-*"のようなデータを削除する必要があります。ただし、redis には、このタイプのキーをバッチでクエリするためのコマンドが用意されていますが、特定のタイプのキーをバッチで削除するためのコマンドは提供されていません。
これから解決策を整理していきます。皆さんのお役に立てれば幸いです。
2. 解決策
まず、解決方法を見てみましょう。
1. まず Redis クライアントに入ります
cd redis所在目录/src ./redis-cli
2. データを初期化し、データをシミュレートします
127.0.0.1:6379> set course-1 1 OK 127.0.0.1:6379> set course-2 2 OK 127.0.0.1:6379> set course-3 3 OK
3. これは、keys コマンドで確認できます。現在、上記の 3 つがあります。 key
127.0.0.1:6379> keys course-* 1) "course-3" 2) "course-2" 3) "course-1"
4. Redis クライアントを終了します
127.0.0.1:6379> exit
5.1. キーのローカル一括削除
./redis-cli keys "course-*" | xargs ./redis-cli del
3 つの関連キーはもちろん -* 削除されました。
原理分析:
まず、redis クライアントを通じてkeys コマンドを実行し、すべてのキーをあいまい検索し、xargs コマンドを使用して、以前にクエリしたキーを後続の redis del の入力として使用します。
最終的な実行結果は
(学習ビデオ共有: redis ビデオ チュートリアル )
1. ファジー クエリ
として理解できます。keys "course-*"
上記の course-1 course-2 course-3 の 3 つのキーをクエリします。
2. 削除キーを実行します。
del の 3 つのキーは、前のキー クエリから取得されます。
del course-1 course-2 course-3
5.2. キーのリモート バッチ削除
開発時には、redis がパブリックであることがよくありますが、おそらく redis はローカルではなく、redis クライアントを通じてリモートで削除できます
./redis-cli -h redis所在服务器ip -p 端口 keys "course-*" |xargs ./redis-cli -h redis所在服务器ip -p 端口 del
3 、補足知識
1. リモート マシンの Redis
次の例は、ホスト 127.0.0.1、ポート 6379、パスワード mypass を使用して Redis サービスに接続する方法を示しています。 。
redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
2. xargs コマンド
xargs コマンドは、他のコマンドにパラメータを渡すためのフィルターであり、複数のコマンドを組み合わせるツールでもあります。詳細なコースウェア http://man.linuxde.net/xargs
関連する推奨事項: redis データベース チュートリアル
以上がRedisは特定のルールのキーをバッチで削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。