因为目前实习工作需求,需要把服务器环境中所有Redis数据进行初步简单分析,即统计其中存储的每一个key所占内存的大小,以便作出清理不重要缓存数据的决策。
但是,由于从线上环境获得持久化文件为AOF文件,而不是RDB文件。RDB文件可以通过Rdbtools工具,来分析具体数据。但是AOF文件不能这样操作。
因此,就给我带来一个问题:如何通过AOF文件获取指定的RDB持久化文件呢?
于是,我通过查阅网上文章,获取的一个解决思路:单独在Redis中开启一个未使用过的端口服务,使用已得到的AOF文件替换该端口服务下自动生成的AOF文件;然后,重启该端口指定的Redis服务,即可把新的AOF文件中数据加载到Redis数据库中,最后在该端口服务客户端执行save或者bgsave命令,即可在指定路径下得到对应的RDB持久化文件。
2.redis如何利用appendonly.aof恢复数据(https://blog.csdn.net/sanbingyutuoniao123/article/details/50484674)
3.Redis持久存储(AOF/Snapshot)(http://shift-alt-ctrl.iteye.com/blog/1878716)
4.redis dump.rdb appendonly.aof 文件路径修改(https://blog.csdn.net/yangxujia/article/details/51010222)
5.超大数据快速导入MySQL(https://blog.csdn.net/dingding_12345/article/details/78646484)
6.redis Can’t save in background: fork: Cannot allocate memory 解决及原理(https://blog.csdn.net/zqz_zqz/article/details/53384854)
7.redis bgsave failed because fork Cannot allocate memory(https://stackoverflow.com/questions/11752544/redis-bgsave-failed-because-fork-cannot-allocate-memory)
8.《Redis设计与实现 第二版》 黄健宏 著
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4549/viewspace-2804882/ ,如需转载,请注明出处,否则将追究法律责任。