如何在redis中删除与特定模式匹配的键

Rpj*_*Rpj 9 redis redis-cli

如何使用redis-cli删除redis中与某个模式匹配的键.我想从以下列表中删除所有foo.

KEYS *

foo:1
foo:2
bar:1
foo:3
bar:2
foo:4
Run Code Online (Sandbox Code Playgroud)

小智 25

正如在该问题的评论中所提到的,这里已经有许多其他答案.如果您正考虑在生产服务器中执行此操作,请务必阅读上面链接的内容.

我发现对偶尔的命令行清理最有用的是:

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

来自"如何使用Redis自动删除与模式匹配的键".

  • 我会使用"redis-cli --scan"而不是KEYS.特别是在现场环境中.不建议使用KEYS. (3认同)

mah*_*efi 5

经过一些搜索后,我想按模式删除数千个键,我发现了这些点:

  • 如果 Redis 上有多个数据库,您应该使用以下命令确定数据库-n [number]
  • 如果您有几个键,请使用del,但如果有数千或数百万个键,则最好使用,unlink因为unlink 是非阻塞的,而 del 是阻塞的,有关更多信息,请访问此页面unlink 与 del
  • keys像 del 并且正在阻塞

所以我使用此代码按模式删除键:

 redis-cli -n 2 --scan --pattern '[your pattern]' | xargs redis-cli -n 2 unlink 
Run Code Online (Sandbox Code Playgroud)