Redis如何通过模式删除key

问题描述 投票:0回答:2

它可能是重复的,但我尝试了很多,但找不到解决方案。

这是我要删除的密钥

127.0.0.1:6379> keys Get*
1) "GetLeftMen:28.10.50.154"
2) "GetLeftMenu|28.10.50.156"
3) "GetLeftMenu|28.30.60.146"
4) "GetLeftMenu|28.30.50.146"
5) "GetLeftMenu|28.30.50.156"
6) "GetLeftMen:28.10.50.155"
7) "GetLeftMen:28.10.50.156"

它是带有应用程序版本的缓存列表数据,我尝试过

127.0.0.1:6379> sscan --pattern Get* | xargs  -del
(error) ERR invalid cursor
127.0.0.1:6379> scan --pattern Get:*
(error) ERR invalid cursor

C:\Program Files\Redis>redis-cli --scan --pattern Get* | xargs redis-cli
'xargs' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files\Redis>redis-cli --raw keys "$menu" | xargs redis-cli del
'xargs' is not recognized as an internal or external command,
operable program or batch file.

我使用的是Windows 10机器,我该怎么办,

ChatGP 这么说

请问有什么解决办法吗?

redis
2个回答
0
投票

ChatGPT 是正确的。无法使用通配符从 Redis 中删除键。您需要使用 KEYS 找到匹配的键,或者更好的是 SCAN,然后 DEL 它们,或者更好的是 UNLINK 它们。


0
投票

你可以尝试这个命令:

redis-cli -a yourPassIfExists keys "*Get*" | xargs -I% redis-cli -a yourPassIfExists del "%"
© www.soinside.com 2019 - 2024. All rights reserved.