RDB持久化功能详细

一、RDB持久化功能

RDB持久化功能可以将Redis中所有数据生成快照并以二进行文件的形式保存到硬盘里,文件名为.RDB文件


在Redis启动时载入RDB文件,Redis读取RDB文件内容,还原服务器原有的数据库数据


过程如下图所示:


Redis服务端创建RDB文件,有三种方式

  • 使用save命令手动同步创建RDB文件

  • 使用bgsave命令异步创建RDB文件

  • 自动创建RDB文件


使用save命令手动同步创建RDB文件

客户端向Redis服务端发送save命令,服务端把当前所有的数据同步保存为一个RDB文件


使用bgsave命令异步创建RDB文件

执行bgsave命令也会创建一个新的RDB文件,且不会造成redis服务器阻塞: 在执行bgsave命令时会执行fork操作创建子进程,

而RDB持久化过程由子进程负责,完成后自动结束,所以Redis服务端仍然可以正常的处理其它的命令请求


自动创建RDB文件

打开Redis的配置文件/etc/redis.conf


自动持久化配置解释:

  • save 900 1表示:如果距离上一次创建RDB文件已经过去的900秒时间内,Redis中的数据发生了1次改动,则自动执行BGSAVE命令

  • save 300 10表示:如果距离上一次创建RDB文件已经过去的300秒时间内,Redis中的数据发生了10次改动,则自动执行BGSAVE命令

  • save 60 10000表示:如果距离上一次创建RDB文件已经过去了60秒时间内,Redis中的数据发生了10000次改动,则自动执行BGSAVE命令

  • 当三个条件中的任意一个条件被满足时,Redis就会自动执行BGSAVE命令


二、RDB 和 AOF 各自有什么优缺点 ?


RDB 优点

  • 1、只有一个紧凑的二进制文件 dump.rdb ,非常适合备份、全量复制的场景

  • 2、容灾性好,可以把RDB文件拷贝道远程机器或者文件系统张,用于容灾恢复

  • 3、恢复速度快,RDB恢复数据的速度远远快于AOF的方式


RDB 缺点

  • 1、实时性低,RDB 是间隔一段时间进行持久化,没法做到实时持久化/秒级持久化。如果在这一间隔事件发生故障,数据会丢失

  • 2、存在兼容问题,Redis演进过程存在多个格式的RDB版本,存在老版本Redis无法兼容新版本RDB的问题

posted @ 2025-04-28 02:31  jock_javaEE  阅读(28)  评论(0)    收藏  举报