叫你别随便重启Redis!!!怎么样,数据全丢了吧~~~

目录

事情是这样的...

Redis持久化数据的两种模式

一、RDB模式

二、AOF模式

三、RDB和AOF之间的关系

四、问题回顾分析

那么该如何开启AOF增量备份模式呢?

解决方法:

1、登录到redis

2、在线修改AOF开关

3、查看数据


事情是这样的...

今天,跑的好好的程序突然挂球了,问了一下负责redis维护的同事。同事说,根据领导的要求,对Redis的备份模式进行了修改,开启了AOF(AppendOnlyFile)的增量备份模式。

我一听心里就慌了。。。

问他:"你是不是改了配置文件?然后。。。重启了?!?!"

同事说:“是啊”

还说:“RDB模式默认开启的,全量备份一直开着,怕什么?”

我听他说完,心里一万只羊驼掠过。。。

emmm~~~~为什么重启一下会出这么大篓子

心里当时就很崩溃~~~~

但还是强忍着跟他说了一下 Redis数据本地化的两种模式

Redis持久化数据的两种模式

一、RDB模式

1、Redis默认启用的本地化模式。

2、每隔一段时间全量备份;系统将导出的dump.rdb文件备份。

save 900 1   #900秒内 至少1个key 被更新 就全量备份RDB
save 300 10
save 60 10000

3、原理:redis会fork一个新的进程来进行rdb全量结构化。(redis本身读写是单进程的)

4、缺点:备份后和故障间 数据丢失;新fork的子进程会copy父进程里的内存数据进行备份,会造成内存瞬间翻倍。

 

二、AOF模式

1、AppendOnlyFile的缩写,是一种增量备份模式,Redis默认不开启。

2、类似mysql数据库的binlog,记录所有的redis操作记录

appendonly yes #开启AOF
appendfilename "appendonly.aof" #设置备份文件名
appendfsync	everysec #每秒更新一次操作记录

3、Redis会在原有进程的基础上,重新fork一个子进程进行记录

4、日志形式记录写操作;以文件追加的方式记录(在同一个备份文件上追加操作记录)

 

三、RDB和AOF之间的关系

1、优先级AOF>RDB

2、RDB和AOF之间是不会相互通信的

 

四、问题回顾分析

同事改完配置文件打开AOF

#开启AOF
appendonly yes

重启了redis--server

redis-server redis.conf

AOF在重启redis之后才开始生效。

重启之后,redis 首先加载AOF的备份文件(因为开了AOF开关),但是AOF是空的,所有Redis内存就被加载为空了。

这个时候,一旦触发或满足了RDB全量备份的条件,Redis会对整个内存数据库进行全量备份,并且覆盖掉原先的备份文件。

BUT 这个时候,Redis的内存是空的,完整RDB之后,就把空内存库全量备份 覆盖了原有的RDB备份文件。

所以,内存空了,AOF还啥都没有,之前的RDB备份文件也被覆盖了。。。

完美 平滑 不留痕迹的 技术手段删库

当时就想给这个大佬跪下了

emmm...总结一下,就是一波操作下来,重启之后的AOF占领了内存,内存又全量覆盖了之前重启之前全量备份的RDB,数据全没了。

最后,幸好redis的RDB的备份文件,每天都会备份一次,但是从上次备份到重启这段时间里的数据还是找不回来了。

 

-----------------End Of The Story----------------

 

那么该如何开启AOF增量备份模式呢?

解决方法:

在线修改AOF开关

不要随便重启Redis!!!因为重启就会涉及到Redis内存的重新加载。

1、登录到redis

#链接到redis
[root@mail ~]# redis-cli -a 123456[你的密码] -p 6379

2、在线修改AOF开关

#redis中查看AOF状态
127.0.0.1:7001> config get appendonly
1) "appendonly"
2) "no"

#在线设置AOF开关为yes
127.0.0.1:7001> config set appendonly yes
OK
127.0.0.1:7001> 

3、查看数据

#数据都在
127.0.0.1:7001> keys *
1) "name"
2) "gender"
3) "age"
127.0.0.1:7001> 

而且备份文件AOF和RDB也都正常持久化中

欢迎关注微信公众号:Linux黑客小课堂  一起学习,一起进步~~~

lexsaints CSDN认证博客专家 Linux大师 微软高级架构师 白帽黑客
Python领域优质创作者 网络安全工程师 Linux开发者 Windows域控Exchange架构师 Java开发者
已标记关键词 清除标记
相关推荐
<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程中经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值