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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!