如何恢复rdb文件?
1、只需要将rdb文件放在我们redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据!
2、查看需要存在的位置
127.0.0.1:6379> config get dir
-
“dir”
-
“/usr/local/bin” #如果在这个目录下存在dump .rdb文件,启动就会自动恢复其中的数据
127.0.0.1:6379>
几乎就他自己默认的配置就够用了,但是我们还是需要去学习
优点:
1、适合大规模的数据恢复!
2、对数据的完整性要不高!
缺点︰
1、需要一定的时间间隔进程操作!如果redis意外宕机了,这个最后一次修改数据就没有的了!
2、fork进程的时候,会占用一定的内容空间!!
===========================================================================
AOF(Append Only File)
- 将我们的所有命令都记录下来,history,恢复的时候就把这个文件全部在执行一遍!
是什么
以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
Aof保存的是 appendonly.aof文件
配置
默认是不开启的,我们需要手动进行配置 ,把这里的no改成yes就开启了
重启redis就可以生效的
里面都是自己之前的命令
测试
进入.aof文件 随便写些什么,保存并退出
启动redis 发现启动失败 (启动会先看.aof文件有没有错误)
解决方案:
可以修复这个aof文件 redis-check-aof
命令为redis-check-aof --fix appendonly.aof
发现自己写的那些乱七八糟的东西没了,重启恢复
优点和缺点
appendon1y no #默认是不开启aof模式的,默认是使用rdb方式持久化的,在大部分所有的情况下,rdb完全够用!
appendfilename "appendonly.aof”#持久化的文件的名字
appendfsync always #每次修改都会sync。消耗性能
appendfsync everysec #每秒执行一次 sync,可能会丢失这1s的数掘!
#appendfsync no #不执行sync.这个时候操作系统自己同步数据,速度最快!
优点:
1、每一次修改都同步,文件的完整会更加好!
2、每秒同步一次,可能会丢失一秒的数据
3、从不同步,效率最高的!
缺点∶
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。