我想删除与“用户*”匹配的键。
我如何在Redis命令行中做到这一点?
Answers:
此功能目前无法一口气完成(请参阅DEL
文档中的注释)。不幸的是,您只能使用KEYS
,遍历结果,然后使用DEL
来删除每个结果。
怎么样使用bash来帮助?
for key in `echo 'KEYS user*' | redis-cli | awk '{print $1}'`
do echo DEL $key
done | redis-cli
要逐步执行:
echo 'KEYS user*' | redis-cli | awk '{print $1}'
-使用awk获取所有键并去除不需要的多余文本。echo DEL $key
-为每一个创建一个echo语句以将其删除。| redis-cli
-取DEL语句,然后将它们传递回cli。不建议这样做是最好的方法(如果某些用户名中包含空格,则可能会出现问题,但希望您能理解这一点)。
我用来做您想要做的另一种紧凑的单面纸是:
redis-cli KEYS "user*" | xargs redis-cli DEL
redis-cli -n 3 KEYS "prefix:*" | xargs redis-cli -n 3 DEL
现在有一个删除密钥的命令,即DEL key [keys]
我知道这很古老,但对于那些从Google过来的人来说:
我刚刚向npm和github发布了一个命令行界面实用程序,该实用程序允许您从Redis数据库中删除与给定模式(甚至是您所询问的用户)相匹配的键。
您可以在此处找到该实用程序: