Redis持久化
概念
- RDB全称Redis Database Backup (Redis数据备份)
- 也叫Redis数据快照
- 简单来说就是把内存中的所有数据记录到磁盘中
- 当Redis实例故障重启后,从磁盘读取文件,恢复数据
RDB
概念
- bgsave开始时会fork主进程,然后生成一个子线程
- 子进程共享主进程的内存数据
- 完成fork后读取内存数据并写入RDB文件中
- fork采用cope on write 技术,当主进程执行读操作时访问共享内存;当主内存执行写操作时,则会拷贝一份数据,执行写操作
特点
- 定时对整个内存做快照
- 不完整,两次备份之间会丢数据
- 会有压缩,文件体积小
- 宕机恢复速度很快
- 数据恢复优先级低,因为数据完整性不如AOF
- 系统资源暂用高,大量CPU和内存消耗
AOF
概念
- AOF全称为Append Only File 追加文件
- Reids处理的每一个写命令都会记录到AOF文件中
- 可以看做是命令日志文件
- AOF默认是关闭的,需要配置redis.conf配置文件来开启
- AOF文件会比RDB文件大的多
特点
- 记录每一次执行的命令
- 相对完整,取决于刷盘策略
- 记录命令,文件体积大
- 宕机恢复速度慢
- 数据恢复优先级高,因为数据相对完整
- 系统资源占用低,主要是磁盘IO资源