redis挂了怎么办?数据怎么恢复呢?
前言:1.线上的redis挂了,丢失的数据怎么办?如何恢复呢?都有哪种恢复方法呢?该如何恢复呢?首先线上我们的redis一般都会做redis的数据持久化,以防止redis挂了导致缓存数据不可用的问题.那我们先来了解一下redis的存储方式 AOF和 RDB吧redis的存储快照之RDB概念:RDB持久化机制,会周期的性的对redis缓存的数据进行持久化,默认每隔5分钟会保存一次RDB快照.场景如下
前言:
1.线上的redis挂了,丢失的数据怎么办?如何恢复呢?都有哪种恢复方法呢?该如何恢复呢?
首先线上我们的redis一般都会做redis的数据持久化,以防止redis挂了导致缓存数据不可用的问题.
那我们先来了解一下redis的存储方式 AOF 和 RDB吧
redis的存储快照之RDB
概念:RDB持久化机制,会周期的性的对redis缓存的数据进行持久化,默认每隔5分钟会保存一次RDB快照.
场景如下:
开始我们找了路人甲 帅哥乙 和工人丁 一起拍了和照片这就叫快照A吧,但过了5分钟后,王老五找工人丁有事,校花六看上了帅哥乙,有一起拍了张照片快照B.
这时候我们就叫快照A为redis生成的第一分RDB快照,每个人就是redis中的一个key-value 数据,过了一定设置的时间,redis就会去检查,如果符合配置要求,就会在生成一份RDF快照,然后干掉快照A.
那么我们应该如何去配置redis的RDB持久化机制呢?
我们一般部署了redis,都可以在redis的根目录下看到一个redis的配置文件,redis.conf , 里面有个重要的参数
save 60 1000
针对如上配置解读
save: 就是同步进行快照生成的意思,也可以配置成bgsave进行异步执行快照生成
60 1000 : 意思每隔60s, redis就会去检查,如果超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,这个文件就是RDB快照的文件.
如上配置整体意思就是每过60s就会做一次检查,是否有超过1000个key改变,有就同步生成一个RDB快照.
咦,那RDB持久化的工作流程是?
(1)redis根据配置自己尝试去生成rdb快照文件
(2)fork一个子进程出来
(3)让子进程尝试将数据dump到临时的rdb快照文件中
(4)完成rdb快照文件的生成之后,就替换之前的旧的快照文件
更多推荐
所有评论(0)