redis快照--RDB持久化

RDB文件

redis是基于内存的数据库,redis所有的数据都是保存到内存中的,当redis进程退出,内存中所有数据都会全部丢失。

为了解决这个问题,redis提供了rdb持久化功能,rdb持久化可以将内存中的数据保存到磁盘中,避免数据丢失!

通过rdb文件,可以还原rdb文件生成时的数据库状态!

redis快照--RDB持久化

RDB文件创建

通过bgsave和save命令:

bgsave save都是redis备份命令,执行后都会在本地备份redis数据生成dump.rdb文件。

区别如下:

save 命令是阻塞式的,它会阻塞redis服务进程,服务器不能处理任何命令请求,直到rdb文件创建完毕。

bgsave命令是非阻塞式的,bgsave命令会派生出一个子进程,然后子进程负责备份创建rdb文件,服务器进程(父进程)继续服务处理命令请求。

 

服务器周期性自动生成rdb文件

通过在命令行手动输入命令备份生成rdb文件外,还可以通过配置文件配置save选项,让server每隔一段时间自动执行bgsave命令:

redis快照--RDB持久化

bgsave和save的区别

bgsave save都是redis备份命令,执行后都会在本地备份redis数据生成dump.rdb文件。

区别如下:

save 命令是阻塞式的,它会阻塞redis服务进程,服务器不能处理任何命令请求,直到rdb文件创建完毕。

bgsave命令是非阻塞式的,bgsave命令会派生出一个子进程,然后子进程负责备份创建rdb文件,服务器进程(父进程)继续服务处理命令请求。

分别执行一次bgsave和save redis log如下:

redis快照--RDB持久化

参考资料:

https://blog.****.net/sinat_36333342/article/details/71429810

https://leehao.me/Redis-%E5%BF%AB%E7%85%A7%E6%8C%81%E4%B9%85%E5%8C%96%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/