Redis中使用命令批量删除key

redis中没有直接根据正则表达式删除key的命令,只有del key1命令

但是redis中有通过正则表达式获取key的命令:keys "正则表达式"

可以借助于xargs命令实现批量删除key,把查出来的key值当做参数传给del

redis-cli keys "xxxx*" | xargs del

 

完整命令

redis-cli -h 192.169.1.71 -p 7001 -a 123456 keys xxxx* | xargs -r -t -n1 redis-cli -h 192.169.1.71 -p 7001 -a 123456 del

【注意】

xargs命令后需加上参数-r,不然当keys的数量为0时,就会报错 (error) ERR wrong number of arguments for ‘del’ command

xargs命令后需加上参数-n1,不然当集群情况keys的数量大于1时,可能会报错 (error) CROSSSLOT Keys in request don’t hash to the same slot

不加-t也可以,加上-t会输出每次删除的内容,不加则不输出删除的内容,但还是会输出每次删除的key的数量

 

上一篇:Linux 下 xargs 命令


下一篇:一天一个 Linux 命令(22):xargs 命令