目录@H_502_3@
Redis持久化数据的两种模式@H_502_3@
三、RDB和AOF之间的关系@H_502_3@
那么该如何开启AOF增量备份模式呢?@H_502_3@
1、登录到redis@H_502_3@
2、在线修改AOF开关@H_502_3@
事情是这样的...
今天,跑的好好的程序突然挂球了,问了一下负责redis维护的同事。同事说,根据领导的要求,对Redis的备份模式进行了修改,开启了AOF(AppendOnlyFile)的增量备份模式。@H_502_3@
我一听心里就慌了。。。@H_502_3@
问他:"你是不是改了配置文件?然后。。。重启了?!?!"@H_502_3@
同事说:“是啊”@H_502_3@
还说:“RDB模式默认开启的,全量备份一直开着,怕什么?”@H_502_3@
我听他说完,心里一万只羊驼掠过。。。@H_502_3@
emmm~~~~为什么重启一下会出这么大篓子@H_502_3@
心里当时就很崩溃~~~~@H_502_3@
但还是强忍着跟他说了一下 Redis数据本地化的两种模式@H_502_3@
Redis持久化数据的两种模式
一、RDB模式
2、每隔一段时间全量备份;系统将导出的dump.rdb文件备份。@H_502_3@
save 900 1 #900秒内 至少1个key 被更新 就全量备份RDB
save 300 10
save 60 10000
3、原理:redis会fork一个新的进程来进行rdb全量结构化。(redis本身读写是单进程的)@H_502_3@
4、缺点:备份后和故障间 数据丢失;新fork的子进程会copy父进程里的内存数据进行备份,会造成内存瞬间翻倍。@H_502_3@
@H_502_3@
二、AOF模式
1、AppendOnlyFile的缩写,是一种增量备份模式,Redis默认不开启。@H_502_3@
2、类似MysqL数据库的binlog,记录所有的redis操作记录@H_502_3@
appendonly yes #开启AOF
appendfilename "appendonly.aof" #设置备份文件名
appendfsync everysec #每秒更新一次操作记录
3、Redis会在原有进程的基础上,重新fork一个子进程进行记录@H_502_3@
4、日志形式记录写操作;以文件追加的方式记录(在同一个备份文件上追加操作记录)@H_502_3@
@H_502_3@
三、RDB和AOF之间的关系
1、优先级AOF>RDB @H_502_3@
2、RDB和AOF之间是不会相互通信的@H_502_3@
@H_502_3@
四、问题回顾分析
#开启AOF
appendonly yes
redis-server redis.conf
重启之后,redis 首先加载AOF的备份文件(因为开了AOF开关),但是AOF是空的,所有Redis内存就被加载为空了。@H_502_3@
这个时候,一旦触发或满足了RDB全量备份的条件,Redis会对整个内存数据库进行全量备份,并且覆盖掉原先的备份文件。@H_502_3@
BUT 这个时候,Redis的内存是空的,完整RDB之后,就把空内存库全量备份 覆盖了原有的RDB备份文件。@H_502_3@
所以,内存空了,AOF还啥都没有,之前的RDB备份文件也被覆盖了。。。@H_502_3@
完美 平滑 不留痕迹的 技术手段删库@H_502_3@
当时就想给这个大佬跪下了@H_502_3@
emmm...总结一下,就是一波操作下来,重启之后的AOF占领了内存,内存又全量覆盖了之前重启之前全量备份的RDB,数据全没了。@H_502_3@
最后,幸好redis的RDB的备份文件,每天都会备份一次,但是从上次备份到重启这段时间里的数据还是找不回来了。@H_502_3@
@H_502_3@
-----------------End Of The Story----------------@H_502_3@
@H_502_3@
那么该如何开启AOF增量备份模式呢?
解决方法:
不要随便重启Redis!!!因为重启就会涉及到Redis内存的重新加载。@H_502_3@
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也都正常持久化中@H_502_3@
@H_502_3@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。