redis使用scan实现keys*

 


【1】直接上脚本

写的比较简单、后续可以自行优化、加参数;

如,把密码、端口、数量 、host 等信息全部参数化 变量化

复制代码
#!/bin/bash
source /etc/profile
next_position=0
while [ 1 ]
do
key_info=`redis-cli -a bfengzlgdredis2017 scan ${next_position} match upgradeGiftPopup:* count 10000` next_position=`echo ${key_info}|awk '{print $1}'` echo ${key_info}|awk '{$1=null;print }'|sed 's/ /\n/g'|sed '/^$/d'|sed 's#^#del #g' >> upgradeGiftPopup.txt if [ ${next_position} -eq 0 ];then break fi
done next_position=0 while [ 1 ] do key_info=`redis-cli -a bfengzlgdredis2017 scan ${next_position} match upgradePlayCnt:* count 10000` next_position=`echo ${key_info}|awk '{print $1}'` echo ${key_info}|awk '{$1=null;print }'|sed 's/ /\n/g'|sed '/^$/d'|sed 's#^#del #g' >> upgradePlayCnt.txt if [ ${next_position} -eq 0 ];then break fi
done
复制代码

注意,我这里 这句  是有把 key 带 del 前缀的

echo ${key_info}|awk '{$1=null;print }'|sed 's/ /\n/g'|sed '/^$/d'|sed 's#^#del #g' 

  

 

要是只想要名称,则去掉这句中的最后一段 sed

|sed 's#^#del #g' 

 

【2】多文件配合

复制代码
#!/bin/bash
source /etc/profile
next_position=0
del_key_file='6381_del_key.txt'
redis_port=6381

while read line
do
while [ 1 ]
do
key_info=`redis-cli -a bfengzlgdredis2017 -p $redis_port scan ${next_position} match $line count 10000`
next_position=`echo ${key_info}|awk '{print $1}'`
echo ${key_info}|awk '{$1=null;print }'|sed 's/ /\n/g'|sed '/^$/d'|sed 's#^#del #g' >> all_${redis_port}.txt


if [ ${next_position} -eq 0 ];then
   break
fi
done
done<$del_key_file
复制代码

 

6381_del_key.txt 这个文件里存放的是需要被删除的key 信息,或通配符信息
posted @   郭大侠1  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2020-12-31 Linux学习笔记(21)linux查看系统状态
2020-12-31 mysql导入报错 [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
2019-12-31 Windows 2016 无域故障转移群集部署方法 超详细图文教程
2019-12-31 Can't initialize character set utf8 (path: /usr/share/mysql/charsets/)
点击右上角即可分享
微信分享提示