一.持久化
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。
redis持久化:
将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据(RDB)
将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程(AOF)
二.RDB---save指令
手动执行一次保存操作
save
save指令相关配置
注意:save指令的执行会阻塞当前Redis服务器,直到当前RDB过程完成为止,有可能会造成长时间阻塞,线上环境不建议使用
1) dbfilename dump.rdb
说明:设置本地数据库文件名,默认值为 dump.rdb
经验:通常设置为dump-端口号.rdb
2) dir
说明:设置存储.rdb文件的路径
经验:通常设置成存储空间较大的目录中,目录名称data
3 )rdbcompression yes
说明:设置存储至本地数据库时是否压缩数据,默认为 yes,采用 LZF 压缩
经验:通常默认为开启状态,如果设置为no,可以节省 CPU 运行时间,但会使存储的文件变大(巨大)
4) rdbchecksum yes
说明:设置是否进行RDB文件格式校验,该校验过程在写文件和读文件过程均进行
经验:通常默认为开启状态,如果设置为no,可以节约读写性过程约10%时间消耗,但是存储一定的数据损坏风险
三.RDB--bgsave指令
手动启动后台保存操作,但不是立即执行
bgsave
注意: bgsave命令是针对save阻塞问题做的优化。Redis内部所有涉及到RDB操作都采用bgsave的方式,save命令可以放弃使用
bgsave指令相关配置:
1) dbfilename dump.rdb
2) dir
3) rdbcompression yes
4) rdbchecksum yes
5) stop-writes-on-bgsave-error yes
说明:后台存储过程中如果出现错误现象,是否停止保存操作 经验:通常默认为开启状态
四.RDB--save配置
配置文件中配置:满足限定时间范围内key的变化数量达到指定数量即进行持久化
save second changes
second:监控时间范围
changes:监控key的变化量
五.RDB--特殊启动形式
1) 全量复制(主从复制)
2) 服务器运行过程中重启
debug reload
3) 关闭服务器时指定保存数据
shutdown save
默认情况下执行shutdown命令时,自动执行 bgsave(如果没有开启AOF持久化功能)