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 协议》,转载必须注明作者和本文链接