redis是内存型数据库,如果不将数据库的存储在磁盘中,一旦服务器退出,则所有数据丢失
Redis使用SAVE和BGSAVE生成RDB文件
区别
- save会阻塞reids服务器进程,直到RDB文件创建完毕,服务器不能处理任何命令
- gbsave会派出子进程进行处理(因此会有个缓冲区,记录开始bgsave后的所有操作,等复制完毕后,再根据这些命令修改RDB文件)
服务器启动时,会自动检测是否有RDB文件的存在,若有则自动载入
AOP文件的更新频率比RDB快,所起只有关闭了AOP文件持久化,才会优先读取RDB
自动间隔性保存
例如我们向服务器提供以下配置(这也是默认配置):(让满足以下一个条件就执行bgsave)
save 900 1
save 300 10
save 60 10000
1.服务器900秒内修改至少一次
2.服务器300秒内至少修改10次
3.服务器60秒内至少修改10000次
redis每100毫秒就执行一次serverCron函数,判断是否满足RDB条件