Redis -对大数据量的 key 进行批量操作的一个记录
最近公司有个项目,由于游戏服务端再对redis进行存数据时并没有设置key的过期时间,数据量大了后导致磁盘占满,就需要对无用的key进行删除或者设置过期时间。
讲下大致思路
redid-cli keys "*" > keys.txt
将redis所有对key存入txt文件,里面是以每个key为一行存储对。数据量如果太大到千万或者上亿,可以进行文件拆分。然后对文件进行读取,获取key然后判断过滤,对需要删除或者设置过期时间的执行操作。(由于redis的del操作可以一次性传入多个,则可以把key存入集合达到一定数量后再删除集合中到key。这样就没必要取一行执行一次删除操作,这样会比较慢。还有如果程序直接用keys获取所有key,量大了的话,内存没这么大来存储
还查到个redis到工具命令
redis-cli -h 127.0.0.1 -p 6333 -a '123' keys "user:test:*"|xargs redis-cli -h 127.0.0.1 -p 6333 -a '123' del
如果有大佬还有其他更优方法欢迎指导。。。
本作品采用《CC 协议》,转载必须注明作者和本文链接