【Redis学习笔记】持久化篇

type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary

RDB (Redis Database)

将某个时间点的所有数据生成快照,保存到硬盘的二进制文件中(默认文件名:dump.rdb)

实现原理

notion image
RDB文件生成时,会fork创建一个子进程,子进程和夫进程共享同一片物理内存
当主线程需要修改数据,通过写时复制(Copy-On-Write)机制,将被修改的内容复制一份,主线程在副本上修改,子进程可以继续使用原有的数据生成RDB文件

bgsave的参数设置

可以通过配置save的参数,来实现RDB多久触发一次

AOF (Append Only File)

实现原理

记录每一个写操作命令到文件中(默认文件名:appendonly.aof)
 
notion image

参数设置

其中有三种appendfsync的配置参数可以选
  1. Always,这个单词的意思是「总是」,所以它的意思是每次写操作命令执行完后,同步将 AOF 日志数据写回硬盘
  1. Everysec,这个单词的意思是「每秒」,所以它的意思是每次写操作命令执行完后,先将命令写入到AOF 文件的内核缓冲区,然后每隔一秒将缓冲区里的内容写回到硬盘
  1. No,意味着不由Redis控制写回硬盘的时机,转交给操作系统控制写回的时机,也就是每次写操作命令执行完后,先将命令写入到 AOF 文件的内核缓冲区,再由操作系统决定何时将缓冲区内容写回硬盘。
 
notion image
 
 

使用混合方式实现 数据的持久化

RDB的加载速度很快,AOF的实时性很高,这样可以最大程度避免数据的丢失

配置开启混合持久化

配置AOF的持久化策略

配置多久执行一次RDB快照
Prev
【Redis学习笔记】高可用篇
Next
【Redis学习笔记】数据类型篇
Loading...
Article List