AOF(Append Only File)

Redis持久化:AOF日志

用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用。

RDB(Redis DataBase)

内存数据的全量快照,即把内存数据都保存到磁盘。

save:主进程执行,会导致redis阻塞
bgsave:创建子进程进行RDB文件写入。

bgsave

同AOF的bgrewriteaof 一样: fork子进程需要拷贝进程必要的数据结构,其中有一项就是拷贝内存页表(虚拟内存和物理内存的映射索引表),这个拷贝过程会消耗大量CPU资源,拷贝完成之前整个进程是会阻塞的.

如果主进程仅做read操作,那么父子进程互不影响。若主进程做write操作,那么这块数据会复制一份生成数据副本,主进程修改此副本数据。bgsave子进程则继续将原有数据写入RDB文件

执行快照的频率

bgsave不会重复执行

当一个bgsave操作正在运行时,不会启动第二个bgsave子进程。这是因为Redis在执行bgsave操作时,会创建一个子进程来执行备份任务。如果一个bgsave操作已经开始,那么Redis不会再启动另一个bgsave操作,直到当前的bgsave操作完成或被取消。

频率不好控制

要想尽可能恢复数据,快照间隔就必须得短,但是频繁执行RDB备份,会有:

  1. 磁盘压力
  2. 进程拷贝频繁阻塞主进程

save选项可以设置多个保存条件,只要其中任意一个条件被满足,服务器就会执行bgsave命令。例如,可以设置服务器在900秒之内对数据库进行了至少1次修改,或者在300秒之内对数据库进行了至少30次修改,或者在60秒之内对数据库进行了至少10000次修改等。

混合持久化

Redis 6.0和5.0默认开启了aof-use-rdb-preamble。

当开启混合持久化时,Redis会先使用RDB方式将现有内存中的数据写入RDB文件,然后再将缓冲区中的增量命令以AOF方式写入AOF文件。在完成写入后,主进程会接收到通知,并将新的含有RDB和AOF两种格式的文件替换旧的AOF文件。

这样做的目的是同时利用RDB和AOF两种持久化方式的优点,即快速恢复数据和保证数据的完整性。

恢复时,Redis会优先使用AOF日志进行恢复。

Redis宕机恢复的更多相关文章

  1. [转帖]Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案

    Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案 https://www.cnblogs.com/xlecho/p/11834011.html echo编辑整理,欢迎转载,转 ...

  2. Vertica集群单节点宕机恢复方法

    Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...

  3. Redis宕机的问题

    在主从模式下宕机要分为区分来看: slave从redis宕机 ​ 在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据: ​ 如果从数据库实现了持久化,只要重新假如到主从架构中会实现增 ...

  4. mysql group replication 主节点宕机恢复

    一.mysql group replication 生来就要面对两个问题: 一.主节点宕机如何恢复. 二.多数节点离线的情况下.余下节点如何继续承载业务. 在这里我们只讨论第一个问题.也就是说当主结点 ...

  5. redis宕机如何解决?如果是项目上线的宕机呢?

    我们先来了解一下  bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...

  6. go 语言的宕机恢复(recover)

    go 语言中的三种报错机制 第一种,也就是常说的 error 类型错误,不需要 recover 拯救,处理方式自己决定 第二种,panic 和 recover 是紧密集合的,有点类似 try catc ...

  7. 存在单点故障的namenode宕机恢复测试

    前提:如果namenode没有做HA,那么至少应该启用secondarynamenode,以便namenode宕机之后手动恢复数据 实验环境:3个节点(cenos 6.10) 测试前数据: 1.为了确 ...

  8. HBase–RegionServer宕机恢复原理

    Region Server宕机总述 HBase一个很大的特色是扩展性极其友好,可以通过简单地加机器实现集群规模的线性扩展,而且机器的配置并不需要太好,通过大量廉价机器代替价格昂贵的高性能机器.但也正因 ...

  9. drbd虚拟机宕机恢复方法

    问题现象 云南计算节点YN-ec-compute-19因系统盘损坏宕机且操作系统无法恢复,其上本地虚拟机无法疏散且无法迁移 拟采用drbd备份的数据对compute19上的虚拟机进行恢复 恢复方法 1 ...

  10. Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! Red ...

随机推荐

  1. 2023牛客暑期多校训练营2 DEFGHIK

    比赛链接 D 题解 知识点:贪心. 首先,因为第一个人喜欢吃的可能会被后面的人选中,因此直接选最喜欢吃的可能会浪费机会.所以,我们考虑先看后面的人怎么选,就是倒着贪心,我们考虑证明. 假设当前剩下的菜 ...

  2. KVM 动态调整 qcow2 硬盘

    动态扩容 参考:https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/kvm_vdisk_live.html 未关闭虚拟机,直接在宿主机器上qemu- ...

  3. EasyExcel中使用表头模板示例

    解决方案 在EasyExcel的官方示例中,使用模板导出Excel,其结果仍然还会重新打印表头.不满足使用表头模板的需求.在参考源码后,找到如下解决方案. String templateFileNam ...

  4. React报错:This is probably not a problem with npm. There is likely additional logging output above.

    解决方案 删除node_modules和package-lock.json,之后运行npm cache clear --force,重新安装模块npm install,另外要注意 npm 5.0版本之 ...

  5. quarkus依赖注入之四:选择注入bean的高级手段

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<quarkus依赖注入> ...

  6. 【笔记】- 【美团1万台 Hadoop 集群 YARN 的调优之路】

    原文:美团1万台 Hadoop 集群 YARN 的调优之路 背景 架构 YARN架构 资源抽象 YARN调度架构 资源抽象 调度流程 作业的组织方式 核心调度流程 指标 业务指标:有效调度 系统性能指 ...

  7. 牛客小白月赛64 C题 题解

    题目链接 题意描述 这一题的意思其实就是,让你构造一个\(n * k\)的矩阵,使得第 i 列的总和为 i ,同时使得:每一列的任意两个数之间的差不大于1,且任意两行之间的总和差不大于1. \(1 \ ...

  8. 大数据请把文章推给想了解DLL的人

    DLL(Dynamic Link Library)动态链接库在 webpack 中用来将可共享且不常改变的代码抽取成公共的库. 没有使用 DLL react 和 react-dom 在 react 项 ...

  9. mysql8数据转移到mysql5

    源MySQL版本:8.0.20 目标MySQL版本:5.7.19 使用mysqldump.mysqlpump等工具备份源数据库的数据为sql文件 将sql文件里的utf8mb4_0900_ai_ci ...

  10. 理解linux的CPU上下文切换

    前言 linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行.当然,这个同时运行不是真的同时运行,而是系统在很短的时间内轮流分配CPU资源,由于CPU的速度很快,所以给人一种同时运行的错 ...