ホームページ  >  記事  >  データベース  >  Redisは特定のルールのキーをバッチで削除します

Redisは特定のルールのキーをバッチで削除します

王林
王林転載
2021-03-11 09:37:272191ブラウズ

Redisは特定のルールのキーをバッチで削除します

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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。