• Redis实践记录与总结


            最近生产环境缓存数据库数据过大(如何搭建单服务redis缓存数据库?以及可视化工具Another Redis Desktop Manager使用),导致在对数据库做rdb快照备份时消耗内存过大,缓存数据库宕机一小时。基础运维通过增加虚拟机内存暂时解决问题,但随着垃圾数据的持续增长,终有一刻内存资源会耗尽,宕机问题重现。现在产品经理要求对缓存数据库进行降容。我针对这个问题提出了四个解决方案,最后一个方案解决问题。

            首先使用redis rdb tools 工具(redis rdb tools工具如何搭建?)对当前快照文件redis.rdb 进行分析,将缓存数据库中无用数据清除掉。在使用工具命令进行处理时报错:

              Invalid RDB version number 10     //提示目标rdb文件版本过高,无法进行分析

         上述报错的原因是:当前缓存使用的7版本,而7版本目前redis rdb tools对高版本的rdb文件分析的功能还没有上线,也就是说当前功能不兼容。

            紧接着上第二个方案,使用redis数据备份工具redis-dump将缓存数据备份成json文件,再将该json文件中的数据迁移到低版本redis数据库中,对低版本进行rdb文件备份,使用redis rdb tools工具进行分析。(redis-dump 工具安装与使用)生产环境64G的数据,在对测试环境6G(远小于64G)数据的缓存进行备份时访问出现connect time out 连接超时问题。最终调查结果是缓存数据过大,该工具不适用大数据量缓存。如果换成小数据量的缓存数据库该方案是可行的。

            接着使用第三个方案:新建主从复制服务器(如何搭建主从复制服务器?),将缓存数据同步到低版本redis(3.0)缓存数据库中。同样报错:

              Invalid RDB version number 10     //提示目标rdb文件版本过高,无法进行分析

            最后一个方案采用rdb与aof混合备份数据库的方式,来避免宕机问题。(如何搭建redis缓存混合持久化方案?)单独采用rdb快照容易丢失本地到下一次快照之间写入的数据。单独使用aof日志在系统启动时加载数据效率低。混合使用rdb与aof可以兼并两者的优点,互相补充短板。

    Redis缓存数据库设计建议:缓存中的数据不要设置永久性数据,可以定时往数据库中同步数据。这样的好处有:1. 所有的数据都会过期并释放内存,不会产生未知垃圾。2. 定时同步可以保证数据新鲜,准确。

  • 相关阅读:
    OCR测试——字体和背景颜色
    C. MEX Repetition
    Word控件Spire.Doc 【加密解密】教程(三):用密码加密 PDF 从 word 到 PDF 转换
    有什么运动耳机比较好、适合运动的耳机推荐
    超越 Siri 和 Alexa:探索LLM(大型语言模型)的世界
    商家如何玩好“种草神器”?小红书KOL达人种草这样做
    原码,反码,补码 以及 位运算
    CSS 合法颜色值
    自定义MVC(导成jar包)+与三层架构的区别+反射+面试题
    python传参时一个星号和两个星号的区别
  • 原文地址:https://blog.csdn.net/qq_44031124/article/details/139295007