在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
由于误用插件,某台服务器上的redis实例存在数百万无用的key。为了删除无用数据,上网查找redis批量删除key的方法,发现使用过程中都有问题。经过本人的研究,终于找到redis批量删除key的正确用法。 本文分享最新版Redis批量删除key的方法,希望能帮到遇到同样问题的网友。 redis批量删除key 网上许多文章和教程给出的redis批量删除key命令是: redis-cli KEYS "$PATTERN" | xargs redis-cli DEL 在本人的实践中,这条命令存在两个问题: 1.redis-cli KEYS "$PATTERN"的结果会出现编号,不是纯粹的key列表,如下所示: [root@node1]# redis-cli keys "*" 1) ":default:is_blog_installed" 2) ":site-options:1-notoptions" 本人用的是Redis 5版本,未测试低版本Redis是否也会添加1),2)这样的编号。可以想到,因为编号的存在,管道后DEL删除的是错误的key; 2.如果key存在空格,管道后面的DEL将无法正确删除。例如key是”123 4566″,传送到管道后面删除,就变成了删除两个key,与预期不符合。 经过一番研究,redis批量删除key的正确命令是: redis-cli --raw KEYS "$PATTERN" | xargs -I {} redis-cli DEL "{}" 重点有两个,分别解决上述命令存在的问题:
改正后的命令在本人的情况下运行正常,就是删除两百多万个key有点慢,花了半个多小时。 redis批量移动key 如果你知道有用key的模式,并且有用key数量很小,可以通过redis批量移动key,然后flushdb的方法快速删除,效率比上文提到的批量删除大量无用key高很多。 操作方法如下:
注意清空当前数据库的命令是 redis-cli参数 上述命令使用
更多参数请参考帮助文档。 以上就是redis批量删除key的步骤的详细内容,更多关于redis批量删除key的资料请关注极客世界其它相关文章! |
请发表评论