前言
难道程序员的职业生命线是青春饭?答案是的。
35岁考虑转行,然后35岁又成了一个新人,而外国可以做到60岁,啥也不说了,可能是觉得中年大叔油腻,不及小鲜肉便宜,唉,可叹市场更新换代太快,快到我们来不及改变,所以,只有让随时保鲜才最重要。
什么是Redis的持久化
我们知道Redis的数据都存储在内存中,如果服务器突然宕机,那么内存数据将会全部消失,为了防止这种情况出现,利用一套机制来保证数据不会因为故障而丢失,我们将这种机制称之为Redis的持久化机制,该机制主要目的是将内存数据存入到硬盘中
Redis 提供两种持久化机制RDB(Redis DataBase)和AOF(Append-Only File)机制。
RDB-快照
快照是最简单的Redis持久化模式,也就是生成某个时间点的数据集,生成RDB文件,可以看到RDB文件中的数据是非常紧凑的,所以在恢复数据的时候读取也是非常快的
触发RDB快照的方式有两种
手动触发
通过手动执行bgsave/save,显示触发生成快照
-
save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存 比较大的实例会造成长时间阻塞,线上环境不建议使用
-
bgsave命令:Redis进程执行fork操作创建子进程,RDB持久化过程由子 进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短
配置参数自动触发
自动触发有以下几种情况:
- 使用save相关配置,命令save m n。表示m秒内数据集存在n次修改时,自动触发bgsave
- 从节点执行全量复制操作,主节点自动执