Redis的持久化方式

持久化:把内存中的数据库保存到磁盘上。防止数据的丢失。

redis支持的持久化方式两种:

  1. RDB:快照 其实就是把数据以快照的形式保存在磁盘上,什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
  2. AOF:日志追加 记录服务器接受的每个写入操作,当服务器启动时再次加载该日志,会把日志中的命令重新执行一遍。

RDB快照持久化方式

如何触发RDB持久化

  • 手动save命令
  • 手动bgsave命令
  • 通过配置自动触发。

save和bgsave区别

该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:
Redis的持久化方式_第1张图片
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:Redis的持久化方式_第2张图片

自动触发:在这里插入图片描述
Redis的持久化方式_第3张图片
保存在磁盘上后,该文件的名字叫什么?
Redis的持久化方式_第4张图片
Redis的持久化方式_第5张图片
rdb的优缺点
优点:
(1)RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。
(2)生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。
(3)RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
缺点:
快照持久化期间修改的数据不会被保存,可能丢失数据。数据完整性比较差。

你可能感兴趣的:(redis)