根据b站UP主狂神说Redis课程所写的个人学习笔记
视频地址:https://www.bilibili.com/video/BV1S54y1R7SB
图片来源于百度
RDB机制
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。redis会单独创建(fork)一个子进程来进行持久化,会将数据写入到一个临时rdb文件中,待持久化过程结束后,再用这个临时文件替换上次持久化好的文件,成为正式的rdb文件,子线程退出。缺点是最后一次持久化后的数据可能丢失。
在生产环境需要备份
rdb保存的文件是dump.rdb
触发机制:
1.save的规则满足的情况下,会自动触发rdb规则
2.执行flushall命令也会触发rdb规则
3.退出redis也会产生rdb文件
备份就自动会生成rdb文件
1.恢复rdb文件只需要把rdb文件放在我们redis启动目录就可以
2.查看需要存在的位置
127.0.0.1:6379> config get dir
1) "dir"
2) "/usr/local/bin"
优点:
1.适合大规模的数据恢复 dump.rdb
2.对数据的完整性要求不高
缺点:
1.需要一定的时间间隔进行操作,如果redis意外宕机,最后一次修改的数据就没了
2.fork进程时会占有一定的内存空间
aof:append only file
将我们的所有命令都记录下来,恢复的时候将文件再执行一遍
默认是不开启的,我们只需改为yes就开启
重启redis即可生效
如果aof文件有错位,需要用redis-check-aof修复aof文件
如果文件正常重启就可以直接恢复
重写规则
如果aof文件大于64mb,就会fork一个新的进程对文件进行重写
优点:
1.每次修改都同步,文件的完整更好
2.每秒同步一次,可能会丢失1s的数据
3.从不同步,效率最高
缺点:
1.aof远远大于rdb,修复速度也比rdb慢
2.aof运行效率比rdb慢,所以redis默认配置就是rdb持久化