Redis有两种持久化方案,分别是RDB和AOF,RDB是Redis默认开启的数据持久化的方式,它是通过手动(save-阻塞式,bgsave-异步)或周期性方式保存Redis中的key/value的一种机制,系统启动时会自动开启这种方式的持久化机制.
如何触发RDB方式持久化:
- 基于配置文件中的save规则周期性的执行持久化.
- 手动执行了shutdown操作会自动执行RDB方式持久化.
- 手动调用了save或bgsave指令执行数据持久化.
- 在Master/Slave架构下,当有新的Slave连接Master时,Master会对数据进行RDB方式持久化.
save和bgsave有什么不同:
save命令执行一个同步保存操作,将当前Redis实例的所有数据快照(snapshot)以RDB文件的形式保存到硬盘.
bgsave命令执行之后立即返回OK,然后Reids Fork 出一个新子进程,原来的Redis进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出.
RDB持久化机制有哪些优点:
- RDB文件是经过压缩的二进制文件,占用空间很小,它保存了Redis某个时间点的数据集,很适合做冷备