千家信息网

redis 清理某个key前缀的key

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,redis清理某个前缀的key例如,某次研发上线代码,造成了某种前缀的key出现了脏数据(例如key前缀名称为 key_ ), 我们需要快速的清理掉这些问题key。常用的方法有2种:1、dump出一个
千家信息网最后更新 2025年12月03日redis 清理某个key前缀的key

redis清理某个前缀的key


例如,某次研发上线代码,造成了某种前缀的key出现了脏数据(例如key前缀名称为 key_ ), 我们需要快速的清理掉这些问题key。


常用的方法有2种:

1、dump出一个全量数据,然后找出符合条件的key,进行删除操作【推荐】

2、使用scan扫描redis,将全部key捞出来,然后再删除符合条件的key



我们这里使用第一种方法,具体如下操作:


1、在slave节点bgsave命令dump出一份全量数据

bgsave ,生成的文件名类似 dump-6379.rdb


2、 安装 rdb 解析工具

pip install rdbtools python-lzf   # python2.7 下 一行命令即可完成安装rdb -c memory dump-6379.rdb > memory.csv  # 用这个命令将rdb进行分析



3、过滤出符合条件的key

awk  -F ',' '{print $3 ,  $NF }'  memory.csv > keys.txt    # 过滤出key的名称和过期时间egrep key_  keys.txt > /root/key_.txt     # 将 key_ 前缀的key 过滤出来cat /root/key_.txt | sort -k 2 -r > /root/sort_keys    # 对key按照日期进行倒序排序egrep 2019-09-10 /root/sort_keys  > /root/match_keys    # 注意:我这里紧急处理,只过滤出 2019-09-10 过期的key(这是最新的数据,也是目前业务最常访问的key,也就是最需要紧急处理的)awk '{print $1}' /root/match_keys > /root/filter_keys    # 将最终需要处理的key重定向到一个文件mkdir /root/test/split -2000 /root/filter_keys  /root/test/    # 将 filter_keys 这个文件 按照每个2k行切分成多个文件,便于后续并行处理



然后,我们写个脚本,批量处理下:


vim /root/batch.sh 内容如下:

for i in `ls /root/test/`; doecho "while read line;doecho \"del \$line\" | redis-cli -h 127.0.0.1 -p 6379 done < /root/test/${i}" > /root/run_${i}.shchmod +x /root/run_${i}.sh done


这样就生成了一堆的脚本


下面写个脚本,批量执行下就好了;

#!/bin/bashfor i in `ls run*.sh`; do nohup sh $i > /dev/null &done





处理 前缀 数据 文件 命令 条件 脚本 名称 方法 生成 一行 业务 也就是 代码 倒序 内容 多个 工具 常用 文件名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 oc创建数据库 怎样把服务器加载启动项下 机器人服务器底板折弯 网络安全和信息化四个融合 服务器漏扫 网络安全绘画空白地方装饰 dns服务器地址怎么填安卓 改服务器密码连不上数据库 更新数据库表数据查询称为 服务器硬盘使用年限 太仓网络技术服务咨询报价 机房服务器访问管理系统 易烊千玺唱歌软件开发 我的世界服务器迷你账号 网络安全法考试找不到入口 kod云用什么软件开发的 dell服务器进入h730 服务器主机提示空间不足 ibm 服务器 型号 定义数据库数据完整性约束 软件开发分中后段吗 德温特专利数据库 用自己的名字创建一个数据库 海城市热电厂自动化控制软件开发 共享打印机和打印服务器区别 综合网络技术优化 宝山区企业网络技术服务承诺守信 兰州网络技术服务有限公司 华为服务器前面显示的数字 系统集成与软件开发的关系
0