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写磁盘有一定的冲突,这段期间的数据,允许丢失
  • 相关阅读:
    作为一个新手程序员,该如何去挽救一个失败的项目?
    IOS查看APP的crash Log
    UITableView 性能优化(卡问题自检)
    ARC学习笔记(一)
    iPhone的UDID与push中使用的device token的关系
    跳转appstore的评分页面和软件的首页
    IOS项目Jenkins集成脚本举例
    jenkins集成学习心得
    学习设计模式心得
    网页跳转到APP
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14887068.html
Copyright © 2011-2022 走看看