持久化是做什么的?持久化的目的是将内存中的数据写入到磁盘中。
为什么需要持久化?因为内存中的数据是临时的,如果遇到服务器宕机或者断电,那么内存中的数据就彻底不见了。
什么宕机?宕机也叫死机,是指系统发生了不可恢复的错误。如常见的WINDOWS系统蓝屏。
RDB 与 AOF 全称
RDB Redis DataBase
AOF Append Only File
RDB 与 AOF 两种技术的区别
RDB又称快照模式(snapshot),在某个时间点,将内存中在所有redis数据以二进制形式保存到磁盘中,是一种全量模式
AOF又称追加模式,他是将Redis服务器所执行的命令,以追加的方式写入到文本文件中
RDB 自动触发策略
在配置文件redis.conf中,按照以下格式插入三条数据
save M N以上格式代表,在 M 秒内,如果Redis数据发生了 N 次变化,则执行BGSAVE命令
save 900 1 # 900内,如果数据发生1次变化,则执行BGSAVE进行RDB
save 300 10
save 60 10000为何是三条,为啥不能是五条、十条?因为Redis规定,最多可以同时配置三条
AOF 配置策略
在配置文件redis.conf中,开始AOF
#把no改为 yes
appendonly yes
#在配置文件中,三种策略任选其一
#同步策略,只要redis数据发生变化,就开始AOF,性能差
appendfsync always
#每秒同步,每秒钟,AOF一次(推荐配置,兼顾了性能和数据的完整性)
appendfsync everysec
#非主动同步,操作系统决定何时AOF,脱离了程序员管控,充满了不确定因素(如,服务器断电了,Redis服务挂掉了)
appendfsync no其他总结
RDB 以二进制保存,体积小,所以恢复数据速度快,但是容易大片数据
AOF 以文本形式保存,体积大,数据恢复速度相对慢,但是数据安全性相对更好