• redis++:Redis持久化中 aof 备份策略中的配置参数


     在使用redis时,都会配置相应的存储策略,以保证redis并不会由于意外挂掉,在短时间内重启时数据不会消失。

    在当前的版本中,redis提供了bgsave和aof两种策略,本文主要描述了aof中的相关参数以及为什么这样是可以足够安全的。

    appendonly:

      开启aof特性,这个控制是否启用aof.

    appendfilename:

      写入文件的文件名。开启aof之后,每条命令(除读之外的命令),均会写入到文件中,这里即实际写入的文件.

    appendfsync:

      写入策略,默认值everysec,每秒写一次(调用flush)。

      另外两个值,always | no,分别表示每次redis写命令之外就写文件,和由操作系统保证。

      always对硬盘压力大,everysec是一个平衡值,no对硬盘压力最小,但调度由系统控制,丢失数据风险最大.

    no-appendfsync-on-rewrite:

      是否在后台写时同步单写,默认值no(表示需要同步).这里的后台写,表示后台正在重写文件(包括bgsave和bgrewriteaof.bgrewriteaof网上很多资料都没有涉及到。其实关掉bgsave之后,主要的即是aof重写文件了).

      no表示新的主进程的set操作会被阻塞掉,而yes表示新的主进程的set不会被阻塞,待整个后台写完成之后再将这部分set操作同步到aof文件中。但这可能会存在数据丢失的风险(机率很小),

      如果对性能有要求,可以设置为yes,仅在后台写时会异步处理命令.

    auto-aof-rewrite-percentage:

      aof文件增长比例,指当前aof文件比上次重写的增长比例大小。

      aof重写即在aof文件在一定大小之后,重新将整个内存写到aof文件当中,以反映最新的状态(相当于bgsave)。

      这样就避免了,aof文件过大而实际内存数据小的问题(频繁修改数据问题).

    auto-aof-rewrite-min-size:

      aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小).

      此变量仅初始化启动redis有效.如果是redis恢复时,则lastSize等于初始aof文件大小.

    aof-load-truncated:

      指redis在恢复时,会忽略最后一条可能存在问题的指令。

      默认值yes。即在aof写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会log并继续,而no会直接恢复失败.

    Linux内核参数:

      另外,与aof重写相关的一个linux内核参数即是 overcommit_memory。

      即在进行重写时,如何分配子进程内存的问题。

      (重写是后台重写,会分配子进程).默认值为0,建立设置为1,以保证 子进程内存能够分配成功(即使用copyOnWrite内存分配策略,在没有set命令时会和主进程使用同一份内存),并且不会判断当前内存是否够用.

  • 相关阅读:
    ABAP开发常见任务
    sap smartform 打印乱码问题
    根据T-Code查看用户出口的代码
    java 调用SAP RFC函数错误信息
    代码单行超过72个字符的一个异常
    SAP 权限层次
    标准屏幕字段描述修改
    [转]SAP一句话入门SD模块
    Python3.7,os模块
    Python3,逻辑运算符
  • 原文地址:https://www.cnblogs.com/codingmode/p/12632717.html
Copyright © 2020-2023  润新知