二、AOF日志:宕机了,Redis如何避免数据丢失?

一.AOF 日志是如何实现的(Redis是追求速率优先的设计,先执行命令,后写入日志(磁盘))


AOF日志与Redis命令执行的顺序是先执行命令写入内存,之后再写入日志中。写后日志这种方式,就是先让系统执行命令,只有命令能执行成功,才会被记录到日志中,否则,系统就会直接向客户端报错。所以,Redis 使用写后日志这一方式的一大好处是,可以避免出现记录错误命令的情况。
除此之外,AOF 还有一个好处:它是在命令执行后才记录日志,所以不会阻塞当前的写操作
不过,AOF 也有两个潜在的风险。首先,如果刚执行完一个命令,还没有来得及记日志就宕机了,那么这个命令和相应的数据就有丢失的风险。如果此时 Redis 是用作缓存,还可以从后端数据库重新读入数据进行恢复,但是,如果 Redis 是直接用作数据库的话,此时,因为命令没有记入日志,所以就无法用日志进行恢复了。

二.AOF的三种写回策略(写回指的是,AOF内存缓冲区的数据写入磁盘)

1、Always(同步写回)

每个写命令执行完,立马同步地将日志写回磁盘

2、Everysec(每秒写回)

每秒写回:每个写命令执行完,只是先把日志写到 AOF 文件的内存缓冲区,每隔一秒把缓冲区中的内容写入磁盘

3、No(操作系统控制的写回)

操作系统控制的写回:每个写命令执行完,只是先把日志写到 AOF 文件的内存缓冲区,由操作系统决定何时将缓冲区内容写回磁盘

三.AOF 重写机制

1、什么是AOF重写(AOF重写,就是生成一个新的AOF文件,将之前AOF文件中的命令进行合并)

AOF 重写机制就是在重写时,Redis 根据数据库的现状创建一个新的 AOF 文件,也就是说,读取数据库中的所有键值对,然后对每一个键值对用一条命令记录它的写入。比如说,当读取了键值对“testkey”: “testvalue”之后,重写机制会记录 set testkey testvalue 这条命令。这样,当需要恢复时,可以重新执行该命令,实现“testkey”: “testvalue”的写入。

Redis进阶学习--02| AOF日志:宕机了,Redis如何避免数据丢失?相关推荐

  1. Redis 进阶学习笔记

    Redis进阶学习笔记 阅读Redis.conf配置文件 # 61, 绑定的 IP , 一般注释掉该命令,这个吗,命令表示仅接受本机的(IP为本机)客户端连接, bind 127.0.0.1 # 80 ...

  2. 如何设计不宕机的 Redis 高可用服务?

    随着业务的不断发展和扩张我们需要更加稳定和高效的 Redis 服务,这是业务发展的必然趋势也是个人能力进阶的最高境界,我们需要一个高可用的 Redis 服务,来支撑和保证业务的正常运行. 我们本文的面 ...

  3. Redis进阶学习08--多级缓存

    Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...

  4. 恢复Redis中主、从库宕机

    1.什么是哨兵 哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个: 监控主数据库和从数据库是否运行正常: 主数据出现故障后自动将从数据库转化为主数据库: 2.原理 单个哨兵的架构 ...

  5. Redis中主、从库宕机如何恢复?

    作者 | tamir_2017 来源 | blog.csdn.net/py_tamir/article/details/82555338 1.什么是哨兵 哨兵是对Redis的系统的运行情况的监控,它是 ...

  6. Redis 内存数据满了,会宕机吗?

    Redis 数据库内存数据满了,会宕机吗? 答案是:不会让它出现存满的情况,在使用Redis的时候我们要配置Redis能使用的最大的内存大小,存到一定容量的时候还有Redis的内存淘汰策略呢,还有LR ...

  7. 面试官:Redis 内存数据满了,会宕机吗?

    背景 Redis 数据库内存数据满了,会宕机吗?答案是:不会让它出现存满的情况,在使用Redis的时候我们要配置Redis能使用的最大的内存大小,存到一定容量的时候还有Redis的内存淘汰策略呢,还有 ...

  8. redis快照持久化和aof日志持久化

    持久化就是即使断电/重启需要存储的数据不会丢失,即将数据存储在设备中,一般存在硬盘内 redis的持久化有2种方式 :1-rdb快照  2-aof日志,可以通过配置redis.conf文件进行配置 r ...

  9. redis的读写分离和主机宕机

    主写从读,读写分离 主:只允许写操作 从:只允许读操作 主机宕机,从机原地待命 主机宕机后,他的从机的状态会变成未启用,因为它要等他的老大,也就是主机正常运行后,它才工作 模拟一下 关闭主机的服务 r ...

最新文章

  1. php header setcookie,php中header头设置Cookie与内置setCookie的区别,和js对cookie操作
  2. MSN Cartoon 试用
  3. 中间表增加额外字段_如何定制分表中间件
  4. 4位并行加载寄存器设计
  5. Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
  6. ant-design-vue 快速入手及常用标签
  7. 《HTML5开发手册》——1.5 初学者“菜谱”:使用nav元素创建导航
  8. linux cpu 工作频率,Linux系统限制CPU工作频率(示例代码)
  9. 大数据各组件默认端口
  10. Andoid游戏【真情表白】让你心爱的人在游戏中感受真情!
  11. 3.2. tensorflow2实现Wileoxon秩和检验法(上) ——python实战
  12. 怎样用计算机求成绩平均分,2017年计算机一级WPS辅导:WPS2007中求特定比例成绩的平均分...
  13. 关于网页设计工具的50个新的资源和灵感
  14. 利用Python对Excel数据进行处理
  15. 运动模糊(Montion blur)
  16. js设计模式之单例模式
  17. 树莓派Pico开发板的C/C++开发环境搭建(VSCode+PlatformIO)
  18. 【直击DTCC】宝存CEO阳学仕:如何保障SSD的IO确定性?
  19. 计算机中丢失ucore46.dll,Creo6.0 Purge功能 如果试过各种方法还不能使用,可以试下这个方法...
  20. Java 时间间隔计算工具类

热门文章

  1. 一个朋友写的新浪灌水机一部
  2. Unity3d NGUI的使用(二)(UILabel中文字体及可点击的字体)
  3. 臭名昭著的MOS管米勒效应
  4. 在fluent中引入visual studio
  5. 只要工具不要“霸”——百度搜霸与百度工具栏
  6. 【LeetCode解题报告】《算法基础012_因子和》- Java
  7. 基于CentOS7的Matomo网站统计分析工具
  8. python智慧树期末_智慧树大数据python期末答案
  9. php贴吧源码,FluxBB v1.5.11 php论坛贴吧源码下载
  10. 共话机器翻译新风向,第二届小牛翻译论坛启幕在即