zoukankan      html  css  js  c++  java
  • Redis持久化

    一、redis持久化

    # 快照:某时某刻数据的一个完成备份,
        -mysql的Dump
        -redis的RDB
    # 写日志:任何操作记录日志,要恢复数据,只要把日志重新走一遍即可
        -mysql的 Binlog
        -Redis的 AOF
       

    1.1RDB

    # 触发机制-主要三种方式
        -save:客户端执行save命令----》redis服务端----》同步创建RDB二进制文件,如果老的RDB存在,会替换老的
        -bgsave:客户端执行save命令----》redis服务端----》异步创建RDB二进制文件,如果老的RDB存在,会替换老的
        -配置文件
            save   900        1
            save   300        10
            save   60         10000
            如果60s中改变了1w条数据,自动生成rdb
            如果300s中改变了10条数据,自动生成rdb
            如果900s中改变了1条数据,自动生成rdb
            
        

    1.2AOF

    # 客户端每写入一条命令,都记录一条日志,放到日志文件中,如果出现宕机,可以将数据完全恢复
    
    #  AOF的三种策略
        always:redis–》写命令刷新的缓冲区—》每条命令fsync到硬盘—》AOF文件
        everysec(默认值):redis——》写命令刷新的缓冲区—》每秒把缓冲区fsync到硬盘–》AOF文件
        no:redis——》写命令刷新的缓冲区—》操作系统决定,缓冲区fsync到硬盘–》AOF文件
    
    # AOF重写
        -本质:本质就是把过期的,无用的,重复的,可以优化的命令,来优化
        -使用:
            -在客户端主动输入:bgrewriteaof
            -配置文件:
    # AOF持久化配置最优方案
    appendonly yes #将该选项设置为yes,打开
    appendfilename "appendonly.aof" #文件保存的名字
    appendfsync everysec #采用第二种策略
    dir ./data #存放的路径
    no-appendfsync-on-rewrite yes #在aof重写的时候,是否要做aof的append操作,因为aof重写消耗性能,磁盘消耗,正常aof写磁盘有一定的冲突,这段期间的数据,允许丢失
  • 相关阅读:
    [leetcode]Longest Common Prefix
    [leetcode]Container With Most Water
    [leetcode]Regular Expression Matching
    [leetcode]Palindrome Number
    [leetcode]String to Integer (atoi)
    [leetcode]Reverse Integer
    [leetcode]ZigZag Conversion
    [leetcode]Longest Palindromic Substring
    [leetcode]Add Two Numbers
    poj 1228 Grandpa's Estate
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14887068.html
Copyright © 2011-2022 走看看