zoukankan      html  css  js  c++  java
  • 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足够了。

    注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层
  • 相关阅读:
    数据结构之链表——加里森的任务(循环链表)
    数据结构之队列——回文字判断
    数据结构之栈——二进制转十进制
    《爱的艺术》人类超越了本能
    从一个Activity返回上一个Activity
    VS(C++)编程遇到的错误集合
    C++(MFC)编程一些注意事项
    Tomcat部署(进行web服务器开发)
    本地IP与宽带IP
    opencv的Mat图像显示在MFC控件中
  • 原文地址:https://www.cnblogs.com/PJG20/p/14704148.html
Copyright © 2011-2022 走看看