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写磁盘有一定的冲突,这段期间的数据,允许丢失

 

posted @ 2021-06-15 20:42  Palpitate~  阅读(24)  评论(0编辑  收藏  举报