Redis RDB持久化功能可以将Redis内存中的数据库状态保存到磁盘里面,避免数据意外丢失。
1. 手动生成 RDB 文件
有两个Redis命令可以用于生成RDB文件:
- SAVE,该命令会阻塞Redis服务器进程,直到RDB文件创建完成为止,在此期间,服务器不能处理任何客户端命令请求
- BGSAVE,BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程(父进程)继续处理命令请求
2. 自动间隔性生成 RDB 文件
用户可以在redis配置文件中通过 save 选项设置多个保存条件,但只要其中任意一个条件满足,服务器就会执行 BGSAVE 命令。
下面通过实例来解释下save选项的用法:
# redis.conf 文件中有如下配置
save 900 1 # 服务器在 900 秒内,对数据库进行了至少1次修改
save 300 10 # 服务器在 300 秒内,对数据库进行了至少10次修改
save 60 10000 # 服务器在 60 秒内,对数据库进行了至少10000次修改
如果满足上述配置条件中的任意一个,redis服务器就会自动执行 BGSAVE 命令来进行RDB持久化。