[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

 

posted @ 2023-02-15 11:57  DavidHHuan  阅读(707)  评论(0编辑  收藏  举报