删除以某些key(info)开头得数据,总结了一下:
环境配置:
CentOS-6,redis-3.2.8,双机主备集群
192.168.149.212:7018,7019,7020;(master)
192.168.149.213:7021,7022,7023;(slave)
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 {}
3.退出保存:ESC :wq
4.添加执行权限:chmod +x redis_del.sh
5.执行脚本:后面加上参数
./redis_del.sh info*
返回值为数量则为正确的,返回值为0 则可能发生错误。
redis命令大全:http://doc.redisfans.com/