Redis--持久化

1. 持久化的作用

  1. 概述:Redis数据保存在内存中,但是会异步的同步到磁盘中,保证数据的持久化;
  2. 持久化方式
    在这里插入图片描述

2. RDB方式

1. 基础概述
  1. 把存储在内存中数据,生成快照持久化到硬盘中;当redis重启时,再从RDB文件中把数据加载到内存中。
2. 触发RDB的三种方式
  1. save(同步):会阻塞后面执行的命令,直到生成快照结束。
    1. 是一个阻塞的命令。
    2. 当生成快照成功之后,会替换旧的快照。
  2. bgsave(异步):执行了此命令立刻返回,再另外的子进程中生成快照;
    1. 是一个阻塞的命令,阻塞发送在创建子进程的过程中。
    2. 当生成快照成功之后,会替换旧的快照。
  3. 自动:根据一定的规则,自动生成快照文件。
    1. 根据redis的配置文件设置,在多少秒内修改了多少数据,而生成RDB文件。
    2. 符合条件之后,也是使用的bgsave命令来生成RDB。
3. 其它会,触发RDB的三种方式
  1. 全量复制:使用主从节点的时候,主节点会生成RDB文件,把文件发送给从节点,进行数据之间的同步。
  2. debug reload:debug的重启,不会清空内存中的数据,但是,会生成RDB文件。
  3. shutdown:使用shutdown命令或者直接关机的时候,会生成RDB文件,防止数据的丢失。
4. RDB配置,最佳实践

在这里插入图片描述

5. RDB缺点
  1. 耗时,耗性能;
    1. O(n)的数据:耗时;
    2. fork():消耗内存,但是Redis底层进行数据处理时,采用了copy-on-write策略;
    3. Disk I/O:IO性能。
  2. 不可控,可能会丢失数据
    1. 因为不管使用哪种方式,都可能在再次备份RDB的时候,突然宕机,就会导致数据丢失。

3. AOF方式

1. 基础概述
  1. AOF主要记录的就是,每次client端发送到服务器执行的命令;当服务器重启的时候,会读取AOF文件,reload数据。
2. 配置AOF执行的三种策略
  1. always:把命令写入到缓冲区中,然后每条命令都实时保存到AOF文件中。
  2. everysec :把命令写入到缓冲区中,然后每秒把命令保存到AOF文件中。
  3. no:根据OS来判断什么时候,刷新到AOF文件中。
3. AOF重写
  1. 就是把一些重复的,过期的,可被优化的指令存入到AOF文件中。
    在这里插入图片描述

  2. AOF重写的作用

    1. 减少硬盘占用量:指令更少;
    2. 加快恢复速度:因为需要执行的指令更少。
    3. 重写方式
      1. bgrewriteaof命令
      2. 重写配置。
        在这里插入图片描述
  3. AOF重写配置
    在这里插入图片描述
    在这里插入图片描述

  4. AOF流程
    在这里插入图片描述

  5. AOF正确配置
    在这里插入图片描述

4. RDB和AOF持久化的取舍和选择

1. RDB和AOF的对比

在这里插入图片描述

2. RDB最优策略

在这里插入图片描述

3. AOF最优策略

在这里插入图片描述

4. 最优策略(适宜RDB和AOF)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值