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的问题 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号