通过redis-cli批量删除多个指定模式的key

Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作。

xargs介绍:
翻译:从标准输入执行命令
记忆:x 是执行的意思;args是参数列表的意思。===>就是把参数传到后面,用这些参数去执行后面的语句。

redis-cli keys "*" | xargs redis-cli del  
//如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径或者cd到redis-cli的路径
//如:/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del 
//keys指令就是redis中的指令,后面的字符是模式匹配的字符,"*"代表所有的,del也是redis中的命令

如果要指定 Redis 数据库访问密码,使用下面的命令:

redis-cli -a yousPwd keys "*" | xargs redis-cli -a yousPwd del
//把yousPwd替换成redis数据库的密码就行

如果要访问 Redis 中特定的数据库,使用下面的命令

//下面的命令指定数据序号为0,即默认数据库  
redis-cli -n 0 keys "*" | xargs redis-cli -n 0 del

删除所有Key
删除所有Key,可以使用Redis的flushdb和flushall命令

//删除当前数据库中的所有Key  
flushdb  
//删除所有数据库中的key  
flushall 

其它形式的通过redis的key删除:

  1. 如果key包含空格,可以通过加引号来删除
    DEL “a log message”
    DEL " vip user "
    不过不推荐在key中使用空格,最好使用冒号来分割字段
    例如vip:user:mary
    一些文档使用下划线,按理驼峰应该也可以了

  2. 另外 redis 的 DEL是可以批量删除的,使用空格隔开
    DEL key1 key2
    会返回成功删除的个数
    (integer) 2
    对于有空格的key需要用引号包含起来
    DEL ”vip user mark" “vip user mary”
    (integer) 2

你可能感兴趣的:(通过redis-cli批量删除多个指定模式的key)