由于誤用插件,某臺服務器上的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 "{}"
重點有兩個,分別解決上述命令存在的問題: