Redis(4)——持久化RDB与AOF

一、持久化的作用

1. 什么是持久化

redis 所有数据保存在内存中,对数据的更新将异步地保存到磁盘上。

2. 持久化方式
  • 方式一:快照
    • MySQL Dump
    • Redis RDB
  • 方式二:写日志
    • Redis AOF
    • MySQL Binlog
    • Hbase HLog

二、RDB

2.1 什么是RDB

在这里插入图片描述

redis主从复制的时候,也会用到RDB

2.2 触发机制-主要三种方式
  • save(同步)
    • 在数据量很大的时候,会存在阻塞,因为redis是单线程的。
    • 文件策略:如果存在老的RDB文件,新的文件会替换老的文件
    • 复杂度:O(N),因为需要将redis中的所有数据都写在RDB文件中

在这里插入图片描述

  • bgsave(异步)

在这里插入图片描述

这个createRDB是由子进程来完成的。

在这里插入图片描述

  • 自动
    • 在某些条件达到的时候,自动地生成RDB文件 (这个条件可以在配置文件中配置)

在这里插入图片描述

上面表格中满足任意条件就会自动创建RDB,这里面第一行的意思是:每900秒,有一个数据改变,就会生成RDB文件。

2.3 触发机制-不容忽略方式
  • 全量复制
    • 主从复制的时候,主会自动生成RDB文件
  • debug reload
  • shutdown
    • 执行这个命令的时候,会生成RDB文件

在这里插入图片描述

三、AOF

3.1 RDB现存问题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 什么是AOF

在这里插入图片描述

在这里插入图片描述

主要写入一个数据,就向AOF文件中增加一条数据。

3.3 AOF的三种策略
  • always

在这里插入图片描述

  • everysec

在这里插入图片描述

  • no

在这里插入图片描述

在这里插入图片描述

3.4 AOF重写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、RDB和AOF的抉择

在这里插入图片描述

五、开发运维常见问题

  • fork操作
    • 同步操作,做了一个内存页的拷贝。
    • 与内存量息息相关:内存越大,耗时越长(与机器类型有关)
    • info:latest_fork_usec

在这里插入图片描述

  • 进程外开销
  • AOF追加阻塞

在这里插入图片描述

  • 单机多实例部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值