web-dev-qa-db-ja.com

redisで特定のパターンに一致するキーを削除する方法

Redis-cliを使用してredisの特定のパターンに一致するキーを削除する方法。次のリストからすべてのfooを削除したいと思います。

KEYS *

foo:1
foo:2
bar:1
foo:3
bar:2
foo:4
9
Rpj

質問へのコメントで述べたように、これに対する他の多くの答えがすでにここにあります。プロダクションサーバーでこれを行うことを考えている場合は、上記のリンクを必ずお読みください。

たまにコマンドラインをクリーンアップするのに最も役立つと思ったのは次のとおりです。

redis-cli KEYS "*" | xargs redis-cli DEL

from "Redisを使用してパターンに一致するキーをアトミックに削除する方法"

24
Matt Plec

コマンドラインインターフェイスユーティリティをnpmとgithubに公開しました。これを使用すると、Redisデータベースから特定のパターン(*でも)に一致するキーを削除できます。

ここでユーティリティを見つけることができます:

https://www.npmjs.com/package/redis-utils-cli

3
Gabriel McAdams

これらのポイントを見つけたいくつかの検索の後、パターンごとに何千ものキーを削除したかった:

  • redisに複数のデータベースがある場合は、-n [number]を使用してデータベースを決定する必要があります
  • キーがいくつかある場合はdelを使用しますが、キーが数千または数百万ある場合はunlinkを使用することをお勧めします。これは、unlinkが非ブロッキングdelがブロックしている間、詳細についてはこのページにアクセスしてください nlink vs del
  • また、keysはdelのようなもので、ブロックしています

そのため、このコードを使用して、パターンごとにキーを削除しました。

 redis-cli -n 2 --scan --pattern '[your pattern]' | xargs redis-cli -n 2 unlink 
0
mahdi yousefi