如何使用redis-cli删除与特定模式匹配的键。我想从以下列表中删除所有foo。
KEYS *
foo:1
foo:2
bar:1
foo:3
bar:2
foo:4
KEYS *
foo:1
foo:2
bar:1
foo:3
bar:2
foo:4
如在问题的评论中提到的那样,这里已经有很多其他答案了。如果您考虑在生产服务器中使用此方法,请务必阅读上面链接的答案。
我发现用于偶尔的命令行清理最有用的是:
redis-cli KEYS "*" | xargs redis-cli DEL
-h
作为主机名从远程主机上删除。 - Nitesh Verma我想通过模式删除数千个键,在一些搜索后,我发现以下几点:
-n [number]
来确定数据库。del
命令进行删除,但是,如果存在成千上万的键,最好使用unlink
命令,由于 unlink是非阻塞的,而del
则会阻塞。有关更多信息,请访问此页面unlink vs delkeys
命令与 del 类似,也是阻塞的。所以,我使用了以下代码来按模式删除键:
redis-cli -n 2 --scan --pattern '[your pattern]' | xargs redis-cli -n 2 unlink
(error) CROSSSLOT Keys in request don't hash to the same slot
的问题。我正在使用以下命令从集群中删除匹配模式为hi*
的键:redis-cli -u redis://localhost:6379 --scan --pattern 'hi*' | xargs redis-cli -u redis://localhost:6379 DEL
。 - roottravellerredis-cli --pipe
可以加速操作:https://dev59.com/YFQJ5IYBdhLWcg3wf2Ed#66179509 - Jason Hoetgerredis-cli -h <HOST> -p <PORT> --scan --pattern "patter*n" | xargs redis-cli -h <HOST> -p <PORT> unlink
使用 AWS Redis 服务器的主机和端口替换主机和端口。
如果您的 Redis 设置需要密码验证,则使用以下内容:
redis-cli -h <HOST> -p <PORT> -a <PASSWORD> --scan --pattern "patter*n" | xargs redis-cli -h <HOST> -p <PORT> -a <PASSWORD> unlink
使用 AWS Redis 服务器的主机、端口和密码替换主机、端口和密码。
您也可以将上述命令用于本地主机。