Linux下redis 以关键字批量删除数据

删除以某些key(info)开头得数据,总结了一下:

环境配置:

CentOS-6,redis-3.2.8,双机主备集群

192.168.149.212:7018,7019,7020;(master)

192.168.149.213:7021,7022,7023;(slave)Linux下redis 以关键字批量删除数据_第1张图片

 

1.单机批量删除:

redis-cli -h 192.168.149.212 -p 7018  keys "info*" | xargs -i redis-cli -h 192.168.149.212 -p 7018  del 

如需密码加上-a 参数即可,如需指定某个库加上-n参数即可,例如:

redis-cli -a 密码 -h 192.168.149.212 -p 7018  -n 库号 keys "info*" | xargs -i redis-cli -a 密码 192.168.149.212 -p 7018  -n 库号 del {}
 

2.集群批量删除:

单机版得可以按照上面来删除。集群版得需要下面步骤

1.创建shell脚本。

   touch redis_del.sh

2.编辑shell脚本:

 #!/bin/bash
#命令最好写绝对路径
REDIS_COMM=/usr/local/redis-3.2.8/redis-cli
#服务器参数需要通过redis-cli -c -h 192.168.149.212 -p 7018 cluster nodes|grep master找到主服务器即可,从服务器不用管。
#本次只查到了一个主服务器10.190.104.11 ,只需写一个
REDIS_SER01=192.168.149.212
PORT1=7018
PORT2=7019
PORT3=7020
#redis库未加密码,不需要使用-a,不指定库,不需要使用-n参数
$REDIS_COMM -c -h $REDIS_SER01 -p $PORT1 keys $1 | xargs -i $REDIS_COMM -h $REDIS_SER01 -p $PORT1 del {}
$REDIS_COMM -c -h $REDIS_SER01 -p $PORT2 keys $1 | xargs -i $REDIS_COMM -h $REDIS_SER01 -p $PORT2 del {}
$REDIS_COMM -c -h $REDIS_SER01 -p $PORT3 keys $1 | xargs -i $REDIS_COMM -h $REDIS_SER01 -p $PORT3 del {}

Linux下redis 以关键字批量删除数据_第2张图片

3.退出保存:ESC :wq

4.添加执行权限:chmod +x  redis_del.sh

5.执行脚本:后面加上参数

./redis_del.sh   info*

返回值为数量则为正确的,返回值为0 则可能发生错误。

redis命令大全:http://doc.redisfans.com/

 

你可能感兴趣的:(redis)