• redis随记


      redis 是一个非常高效和简洁的软件,redis 源码阅读必然要提上日程,以下仅作日常记录 :)

    redis 持久化

    文档:http://redisdoc.com/topic/persistence.html

    • RDB快照

      • 在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。你也可以通过调用 SAVE 或者 BGSAVE , 手动让 Redis 进行数据集保存操作。
      • 开启RDB配置文件参考:
      ################################ 快照  #################################  
      #  
      # Save the DB on disk:保存数据库到磁盘  
      #  
      #   save <> <更新>  
      #  
      #   如果指定的秒数和数据库写操作次数都满足了就将数据库保存。  
      #  
      #   下面是保存操作的实例:  
      #   900秒(15分钟)内至少1key值改变(则进行数据库保存--持久化)  
      #   300秒(5分钟)内至少10key值改变(则进行数据库保存--持久化)  
      #   60秒(1分钟)内至少10000key值改变(则进行数据库保存--持久化)  
      #  
      #   注释:注释掉“save”这一行配置项就可以让保存数据库功能失效。  
      #  
      #   你也可以通过增加一个只有一个空字符串的配置项(如下面的实例)来去掉前面的“save”配置。  
      #  
      #   save ""  
      
      save 900 1  
      save 300 10  
      save 60 10000  
      
      #在默认情况下,如果RDB快照持久化操作被激活(至少一个条件被激活)并且持久化操作失败,Redis则会停止接受    更新操作。  
      #这样会让用户了解到数据没有被正确的存储到磁盘上。否则没人会注意到这个问题,可能会造成灾难。  
      #  
      #如果后台存储(持久化)操作进程再次工作,Redis会自动允许更新操作。  
      #  
      #然而,如果你已经恰当的配置了对Redis服务器的监视和备份,你也许想关掉这项功能。  
      #如此一来即使后台保存操作出错,redis也仍然可以继续像平常一样工作。  
      stop-writes-on-bgsave-error yes  
      
      #是否在导出.rdb数据库文件的时候采用LZF压缩字符串和对象?  
      #默认情况下总是设置成‘yes’, 他看起来是一把双刃剑。  
      #如果你想在存储的子进程中节省一些CPU就设置成'no'  
      #但是这样如果你的kye/value是可压缩的,你的到处数据接就会很大。  
      rdbcompression yes  
      
      #从版本RDB版本5开始,一个CRC64的校验就被放在了文件末尾。  
      #这会让格式更加耐攻击,但是当存储或者加载rbd文件的时候会有一个10%左右的性能下降,  
      #所以,为了达到性能的最大化,你可以关掉这个配置项。  
      #  
      #没有校验的RDB文件会有一个0校验位,来告诉加载代码跳过校验检查。  
      rdbchecksum yes  
      
      # 导出数据库的文件名称  
      dbfilename dump.rdb  
      
      # 工作目录  
      #  
      # 导出的数据库会被写入这个目录,文件名就是上面'dbfilename'配置项指定的文件名。  
      #   
      # 只增的文件也会在这个目录创建(这句话没看明白)  
      #   
      # 注意你一定要在这个配置一个工作目录,而不是文件名称。  
      dir ./
      
    • AOF日志

      • 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小
      • 开启AOF配置文件参考:
      ############################## APPEND ONLY MODE ###############################
      # 是否开启AOF,默认关闭(no
      appendonly yes
      
      # 指定 AOF 文件名
      appendfilename appendonly.aof
      
      # Redis支持三种不同的刷写模式:
      # appendfsync always #每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。
      appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。
      # appendfsync no     #完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不被推荐。
      
      #在日志重写时,不进行命令追加操作,而只是将其放在缓冲区里,避免与命令的追加造成DISK IO上的冲突。
      #设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,rewrite完成后再写入,默认为no
      no-appendfsync-on-rewrite no 
      
      #当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程。
      auto-aof-rewrite-percentage 100
      
      #当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Reids时由于文件尺寸较小导致频繁的重写。
      auto-aof-rewrite-min-size 64mb
      
    •  

  • 相关阅读:
    研究生
    linux下C++开发工具
    GCC and G++ install
    linux yum命令详解
    OpenCV:SURF算法浅析
    linux内核(kernel)版本号的意义
    常见排序算法
    bash:command not found
    C++ 面向对象(数据封装)
    HTML5 script 标签的 crossorigin 和integrity属性的作用
  • 原文地址:https://www.cnblogs.com/varXinYuan/p/10865472.html
Copyright © 2020-2023  润新知