刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

备份:bgsave  //将dump.rdb保存到usr/local下

恢复:将dump.rdb放到redis安装目录与redis.conf同级目录,重启redis即可

2.3 恢复和异常流程演示

1,查看启动目录,没有dump文件

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

2、set值

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

3、执行shutdown命令关掉服务,查看目录,已经生成对应的dump文件。

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

4、重启redis服务,发现数据还存在

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

5、执行shutdown命令关掉服务,并把dump文件删除

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

6、启动redis在进行查看,发现存储的数据已经不存在了。

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

2.4 RDB持久化的优缺点

优点:

  • 压缩后的二进制文,适用于备份、全量复制,用于灾难恢复

  • 加载RDB恢复数据远快于AOF方式

缺点:

  • 无法做到实时持久化,每次都要创建子进程,频繁操作成本过高

三、AOF持久化

===============================================================================

针对RDB不适合实时持久化,redis提供了AOF持久化方式来解决

开启方式就是在redis.conf设置:appendonly yes  (默认不开启,为no)

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

默认文件名:appendfilename “appendonly.aof”

3.1 AOF持久化原理

  1. 所有的写入命令(set hset)会append追加到aof_buf缓冲区中

  2. AOF缓冲区向硬盘做sync同步

  3. 随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩

  4. 当redis服务重启,可load加载AOF文件进行恢复

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

3.2 AOF持久化配置

| | |

| — | — |

| 配置信息 | 含义 |

| appendonly yes | 启用aof持久化方式 |

| appendfsync always | 每收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用 |

| appendfsync everysec | 每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐 |

| no-appendfsync-on-rewrite  yes | 正在导出rdb快照的过程中,要不要停止同步aof |

| auto-aof-rewrite-percentage 100 | aof文件大小比起上次重写时的大小,增长率100%时,重写 |

| auto-aof-rewrite-min-size 64mb | aof文件,至少超过64M时,重写 |

3.3 AOF持久化恢复

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

学习视频:

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

大厂面试真题:

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

学习视频:

[外链图片转存中…(img-sjaHhiWs-1631109390606)]

大厂面试真题:

刨根问底redis三-Redis的持久化机制,新鲜出炉的蚂蚁金服面经

上一篇:Redis持久化


下一篇:关于redis创建集群时出现[ERR] Node x.x.x.x:6379 is not empty. Either the node already knows other nodes (check