redis 清理某个key前缀的key
admin
2023-03-11 15:21:21
0

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/`; do
echo "while read line;do
echo \"del \$line\" | redis-cli -h 127.0.0.1 -p 6379 
done < /root/test/${i}" > /root/run_${i}.sh
chmod +x /root/run_${i}.sh 
done


这样就生成了一堆的脚本


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

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





相关内容

热门资讯

俄红场阅兵现场播放无人机作战视... 据凤凰卫视报道,当地时间5月9日,俄罗斯胜利日阅兵式在莫斯科举行。阅兵现场,同步播放了无人机作战相关...
5月10日起,北京部分地铁线试... 为服务骑行爱好者携车出行,在借鉴国内先进城市成熟经验、深入开展实地调研的基础上,结合本市轨道交通运营...
解放军主战舰艇编队进入澎湖西南... 5月9日下午,国防部新闻局副局长、国防部新闻发言人蒋斌大校就近期涉军问题发布消息。媒体提到,据报道,...
普京会见三国总统 强化后苏联空... 普京会见三国总统  【普京会见三国总统】莫斯科5月8日电​ 当地时间5月8日,俄罗斯总统普京在莫斯科...
国务院最新任免:陈东明任黄河水... 国务院任免国家工作人员。任命贺勇为国家自然资源副总督察(专职);任命陈东明为黄河水利委员会主任。
国防部:敦促有关国家停止拉帮结... 5月9日下午,国防部新闻局副局长、国防部新闻发言人蒋斌大校就近期涉军问题发布消息。记者:据报道,日本...
女子一吃东西就“大小眼” 确诊... 女子一吃东西就“大小眼”  【女子一吃东西就“大小眼”】河南郑州一位女子患上了一种罕见的怪病。只要一...
“英版特朗普”攻城略地,英国要... 【文/观察者网 柳白】英国政坛正在经历一场强烈震荡。刚刚结束的英国地方议会选举中,首相斯塔默领导的工...
记者观察|透过这场吹风会,看懂... 一项刚从实验室诞生的新技术,如何“能落地、长得好”? 过去很多年里,我们是“先研发技术,再给它找地方...
大破防!美贸易代表炮轰美国法官... 文 观察者网 齐倩美国法院裁定新一轮全球关税非法,特朗普政府随即表示上诉。当地时间5月8日,美国贸易...