[Redis] redis批量删除
通过redis-cli批量删除指定的key前缀。不废话,直接上脚本
1. 创建文件/tmp/redisKeyExpireAll.sh,内容如下
#!/bin/sh # 连接地址 host=127.0.0.1 # 端口 port=6379 # 密码。存在特殊字符需要使用单引号包起来 password='your_password' # 多个正则,使用空格分开 patternList=("pp-order-*" "pp-user-*" "pp-monitor-*") # 一次删除的key数量。如果redis cluster,只能指定为1,要不然会报错的! xargsNum=1 for i in {0..255} do for pattern in ${patternList[@]}; do echo -e "Pattern of: ${pattern}\n" redis-cli -h $host -p $port -a $password -n $i --scan --pattern $pattern | xargs -L $xargsNum redis-cli -h $host -p $port -a $password -n $i del done echo -e "Done for db: ${i}.\n" done
2. 授权可运行
chmod +x /tmp/runRedisKeyDelAll.sh
3. 挂到后台运行
nohup /tmp/runRedisKeyDelAll.sh > /tmp/runRedisKeyDelAll.log 2>&1 &
4. 两种监控看是否正常执行
# 看进程 ps aux | grep runRedisKeyDelAll # 看日志输出 tail -f /tmp/runRedisKeyDelAll.log