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

  • 相关阅读:
    php环境配置中各个模块在网站建设中的功能
    PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
    August 17th 2017 Week 33rd Thursday
    August 16th 2017 Week 33rd Wednesday
    August 15th 2017 Week 33rd Tuesday
    August 14th 2017 Week 33rd Monday
    August 13th 2017 Week 33rd Sunday
    August 12th 2017 Week 32nd Saturday
    August 11th 2017 Week 32nd Friday
    August 10th 2017 Week 32nd Thursday
  • 原文地址:https://www.cnblogs.com/varXinYuan/p/10865472.html
Copyright © 2011-2022 走看看