• Redis持久化策略RDB与AOF


    Redis是基于内存操作,但作为⼀个数据库也具备数据的持久化能⼒;但是为了实现⾼效的读写操作,并不会

    即时进⾏数据的持久化,⽽是按照⼀定的规则进⾏持久化操作的——持久化策略

    Redis提供了2中持久化策略:

    RDB (Redis DataBase)

    AOF(Append Only File)

    RDB

    在满⾜特定的redis操作条件时,将内存中的数据以数据快照的形式存储到rdb⽂件中

    原理:

    RDB是redis默认的持久化策略,当redis中的写操作达到指定的次数、同时距离上⼀次持久化达到指定的时间

    就会将redis内存中的数据⽣成数据快照,保存在指定的rdb⽂件中。

    默认触发持久化条件:

    900s 1次:当操作次数达到1次,900s就会进⾏持久化

    300s 10次:当操作次数达到10次,300s就会进⾏持久化

    60s 10000次:当操作次数达到10000次,60s就会就⾏持久化

    我们可以通过修改redis.conf⽂件,来设置RDB策略的触发条件:

    ## rdb持久化开关

    rdbcompression yes

    ## 配置redis的持久化策略

    save 900 1

    save 300 10

    save 60 10000

    ## 指定rdb数据存储的⽂件

    dbfilename dump.rdb

    RED持久化细节分析:

    缺点

    如果redis出现故障,存在数据丢失的⻛险,丢失上⼀次持久化之后的操作数据;

    RDB采⽤的是数据快照形式进⾏持久化,不适合实时性持久化;

    如果数据量巨⼤,在RDB持久化过程中⽣成数据快照的⼦进程执⾏时间过⻓,会导致redis卡顿,因此

    save时间周期设置不宜过短;

    优点

    但是在数据量较⼩的情况下,执⾏速度⽐较快;

    由于RDB是以数据快照的形式进⾏保存的,我们可以通过拷⻉rdb⽂件轻松实现redis数据移植

    AOF

    Apeend Only File,当达到设定触发条件时,将redis执⾏的写操作指令存储在aof⽂件中,Redis默认未开启aof

    持久化

    原理:

    Redis将每⼀个成功的写操作写⼊到aof⽂件中,当redis重启的时候就执⾏aof⽂件中的指令以恢复数据

    配置:

    ## 开启AOF

    appendonly yes

    ## 设置触发条件(三选⼀)

    appendfsync always        ## 只要进⾏成功的写操作,就执⾏aof

    appendfsync everysec    ## 每秒进⾏⼀次aof

    appendfsync no                 ## 让redis执⾏决定aof

    ## 设置aof⽂件路径

    appendfilename "appendonly.aof"

    AOF细节分析:

    也可以通过拷⻉aof⽂件进⾏redis数据移植

    aof存储的指令,⽽且会对指令进⾏整理;⽽RDB直接⽣成数据快照,在数据量不⼤时RDB⽐较快

    aof是对指令⽂件进⾏增量更新,更适合实时性持久化

    redis官⽅建议同时开启2中持久化策略,如果同时存在aof⽂件和rdb⽂件的情况下aof优先

  • 相关阅读:
    软考 --- 软件工程(1)概念、开发模型
    宿舍管理系统--毕业设计
    单片机嵌入式物联网教程
    软件测试 - Linux命令作用及案例
    字符集与编码
    [学习记录] SpringBoot 1. 基础入门
    Sfdp 超级表单开发平台 V6.0.4 正式发布
    tiup dm prune
    stm32 iap sd卡升级
    劲爆,Java 协程终于来了
  • 原文地址:https://blog.csdn.net/dante1987/article/details/126243278