redis优雅的批量删除key
redis优雅的批量删除key
近期在处理redis的故障中,发现需要删除大量的历史数据(也是bigkeys),好在符合正则表达式。要不然就很痛苦,这也体现了在设计key的时候遵循规范带来的维护好处之一。
简要记录如下(后期再完善):
redis优雅的批量删除key
方式一:主从模式
redis-cli --scan --pattern "ops-coffee-*" | xargs -L 2000 redis-cli del
方式二:分布式(集群)
可能不支持keys 或者 scan
导出数据成rdb格式,找个环境,把rdb载入到这个环境中
redis-cli --scan --pattern "*" >delele_keys.txt
cat delele_keys.txt | awk -F"." '{print $2}' | sed 's/^/del /g' > delele_keys.txt.tmp
mv delele_keys.txt.tmp delele_keys.txt
如果小的话,可以直接执行:
cat /data/mysql/backup/01/total/delele_keys.txt | /usr/bin/redis-cli -p 6379 -h x.x.x.x >/dev/null
# 分割文件
split -l 500000 -d -a 4 delele_keys.txt
cat > /data/mysql/backup/01/total/0705_del_keys_00_09.sh<<"EOF"
#!/bin/bash
for i in {10..20}
do
cat /data/mysql/backup/01/total/x00"${i}" | /usr/bin/redis-cli -p 6379 -h x.x.x.x >/dev/null
sleep 300
done
EOF
sh /data/mysql/backup/01/total/0705_del_keys_00_09.sh &
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下