• Redis持久化策略


    redis提供持久化策略,在适当的时机采用适当手段把内存中的数据持久化到磁盘中,每次redis服务启动时,都可以把磁盘上的数据再次加载内存中使用。

    RDB

    RDB策略:在指定时间间隔内,redis服务执行指定次数的写操作,会自动触发一次持久化操作。
    RDB策略是redis默认的持久化策略,redis服务开启时这种持久化策略就已经默认开启了。

    • save <seconds> <changes>:配置复合的快照触发条件,即Redis 在seconds秒内key改变changes次,Redis把快照内的数据保存到磁盘中一次。默认的策略是:
      •   1分钟内改变了1万次
      •   或者5分钟内改变了10次
      •   或者15分钟内改变了1次

    如果要禁用Redis的持久化功能,则把所有的save配置都注释掉。

    • stop-writes-on-bgsave-error:bgsave快照操作出错时停止写数据到磁盘,这样能保证内存数据和磁盘数据的一致性,但如果不在乎这种一致性,要在bgsave快照操作出错时继续写操作,这里需要配置为no
    • rdbcompression:设置对于存储到磁盘中的快照是否进行压缩,设置为yes时,Redis会采用LZF算法进行压缩;如果不想消耗CPU进行压缩的话,可以设置为no,关闭此功能。
    • rdbchecksum:在存储快照以后,还可以让Redis使用CRC64算法来进行数据校验,但这样会消耗一定的性能,如果系统比较在意性能的提升,可以设置为no,关闭此功能。
    • dbfilenameRedis持久化数据生成的文件名,默认是dump.rdb,也可以自己配置。
    • dirRedis持久化数据生成文件保存的目录,默认是./redis的启动目录,也可以自己配置。

    AOF

    采用操作日志来记录进行每一次写操作,每次redis服务启动时,都会重新执行一遍操作日志中的指令。
    效率低下,redis默认不开启AOF功能。

    • appendonly:配置是否开启AOFyes表示开启,no表示关闭。默认是no
    • appendfilenameAOF保存文件名
    • appendfsyncAOF异步持久化策略
      •   always:同步持久化,每次发生数据变化会立刻写入到磁盘中。性能较差数据完整性比较好(慢,安全)
      •   everysec:出厂默认推荐,每秒异步记录一次(默认值)
      •   no:不即时同步,由操作系统决定何时同步。
    • no-appendfsync-on-rewrite:重写时是否可以运用appendsync,默认no,可以保证数据的安全性。
    • auto-aof-rewrite-percentage:设置重写的基准百分比
    • auto-aof-rewrite-min-size:设置重写的基准值

    小结

    Redis 需要手动开启AOF持久化方式AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。

    关于Redis持久化的使用:若只打算用Redis 做缓存,可以关闭持久化。若打算使用Redis 的持久化建议RDBAOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB

    AOF与RDB模式可以同时启用,这并不冲突。如果AOF是可用的,那Redis启动时将自动加载AOF,这个文件能够提供更好的持久性保障。

    根据数据的特点决定开启哪种持久化策略;
    一般情况,开启RDB足够了。

    注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层
  • 相关阅读:
    leetcode_24. 两两交换链表中的节点
    Mysql大数据量分页优化
    MySQL 默认排序是什么
    spring注入map,spring注入一个接口的多个实现类在map里
    eureka缓存细节以及生产环境的最佳配置
    MySQL 5.7性能调优
    安装后的十个MySQL性能调整设置(版本:5.1、5.5 和5.6)
    docker部署tomcat应用和MySQL数据库
    MySQL热备工具Xtrabackup
    MySQL数据库的冷备方式
  • 原文地址:https://www.cnblogs.com/PJG20/p/14704148.html
Copyright © 2020-2023  润新知