RDB
    1. Redis DataBase
    1. 每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存,如果宕机重启,那么内存里的数据肯定会没有的,那么再次启动 redis 后,则会恢复
    1. 内存备份 -> 磁盘临时文件
      临时文件 -> 恢复到内存
    1. 优势
    • 4.1 每隔一段时间备份,全量备份
    • 4.2 灾备简单,可以远程传输
    • 4.3 子进程备份的时候,主进程不会有任何 io 操作(不会有写入修改或删除),保证备份数据的的完整性
    • 4.4 相对 AOF 来说,当有更大文件的时候可以快速重启恢复
    1. 劣势
    • 5.1 发生故障是,有可能会丢失最后一次的备份数据
    • 5.2 子进程所占用的内存比会和父进程一模一样,如会造成 CPU 负担
    • 5.3 由于定时全量备份是重量级操作,所以对于实时备份,就无法处理
    1. RDB 的配置
    • 6.1 保存位置,可以在 redis.conf 自定义:
      /user/local/redis/working/dump.rdb
    • 6.2 保存机制
      • save 900 1 # 如果1个缓存更新,则15分钟后备份
      • save 300 10 # 如果10个缓存更新,则5分钟后备份
      • save 60 10000 # 如果10000个缓存更新,则1分钟后备份
      • save 10 3 # 如果3个缓存更新,则 10 秒后备份
    • 6.3 其他配置
      • stop-writes-on-bgsave-error
        yes # 如果 save 过程出错,则停止写操作
        no # 可能造成数据不一致
      • rdbcompression
        yes # 开启 rdb 压缩模式
        no # 关闭,会节约 cpu 损耗,但是文件会大,道理同 nginx
      • rdbchecksum
        yes # 使用 CRC64 算法校验对 rdb 进行数据校验,有 10% 性能损耗
        no # 不校验
AOF
    1. Append Only File
    1. 特点
    • 2.1 AOF 更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,大大增加可靠性和数据完整性,所以 AOF 可以每秒备份一次,使用 fsync 操作
    • 2.2 以 log 日志形式追加,如果磁盘满了,会执行 redis-check-aof 工具
    • 2.3 当数据太大的时候,redis 可以在后台自动重写 aof,当 redis 继续把日志追加到老的文件中去时,重写也是非常安全的,不会影响客户端的读写操作
    • 2.4 AOF 日志包含的所有写操作,会更加便于 redis 的解析恢复
    1. 优势
    • 3.1 AOF 更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,大大增加了可靠性和数据完整性,所以 AOF 可以每秒备份一次,使用 fsync 操作
    • 3.2 以 log 日志形式追加,如果磁盘满了,会执行 redis-check-aof 工具
    • 3.3 当数据太大的时候,redis 可以在后台自动重写 aof,当 redis 继续把日志追加到老的文件中去时,重写也是非常安全的,不会影响客户端的读写操作
    • 3.4 AOF 日志包含的所有写操作,会更加便于 redis 的解析恢复
    1. 劣势
    • 4.1 相同的数据,同一份数据,AOF 比 RDB 大
    • 4.2 针对不同的同步机制,AOF 会比 RDB 慢,因为 AOF 每秒都会备份做写操作,这样相对与 RDB 来说就略低,每秒备份 fsync 没毛病 ,但是如果客户端的每次写入就做一次备份 fsync 的话,那么 redis 的性能就会下降
    • 4.3 AOF 发生过 bug,就是数据恢复的时候数据不完整,这样显得 AOF 会比较脆弱,容易出现 bug,因为 AOF 没有 RDB 那么简单,但是呢为了防止 bug 的产生,AOF 就不会根据旧的指令去重构,而是根据当时缓存中存在的数据指令去做重构,这样就更加健壮和可靠
  • 5.配置

    • 5.1 AOF 默认关闭,yes 可以开启
      appendonly no
    • 5.2 AOF 的文件名
      appendfilename “appendonly.aof”
    • 5.3 AOF 同步间隔
      appendfsync everysec
      no:不同步
      everysec:每秒备份,推荐使用
      always:每次操作都会备份,安全并且数据完整,但是慢性能差
    • 5.4 重写的时候是否要同步,no 可以保证数据安全
      no-appendfsync-on-rewrite no
    • 5.5 重写机制,避免文件越来越大,自动优化压缩指令,会 fork 一个新的进程去完成重写动作,新进程里的内存数据会被重写,此时旧的 aof 文件不会被读取使用,类似 rdb,当前 aof 文件的大小是上次 aof 大小的 100% 并且文件体积达到 64m,满足两者则触发重写
      auto-aof-rewrite-percentage 100
      auto-aof-rewrite-min-size 64mb

Redis 的 RDB 和 AOF相关推荐

  1. redis rdb aof区别_干货|Redis的RDB和AOF

    作者:Dvelpro 链接:https://blog.nowcoder.net/n/63c9812ce634474280675f3f6bb4d1ca 来源:牛客网 Redis的RDB和AOF 概述 R ...

  2. 【Linux服务器开发系列】一场redis线上事故引发的思考丨redis持久化 rdb和aof丨redis主从复制

    一场redis线上事故引发的思考 1. 事故背景介绍 2. redis持久化 rdb和aof 3. redis主从复制 4. 解决方案详解 [Linux服务器开发系列]一场redis线上事故引发的思考 ...

  3. Redis持久化 - RDB和AOF

    一.持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 持久化Redis所有数据保持在内存中,对数据的更新将异步地保 ...

  4. Redis持久化 RDB和AOF 比较与选择

    Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘.当下次Redis重启时,利 ...

  5. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  6. linux 关闭redis 命令_面试必问的 Redis:RDB、AOF、混合持久化

    前言 本来说 Redis 分3篇,但是上周写持久化时发现持久化的内容还越多的,于是持久化就单拆一篇了. 我估计后面的主从复制.哨兵.集群内容也是不少,所以说实话,我也不知道之前说的3篇会拆成几篇了 持 ...

  7. Redis——持久化RDB和AOF

    Redis的持久化有两种方式,分别是RDB和AOF,其中默认的方式是RDB,我们可以看到,我们的redis里有一个dump.rdb,的文件,其实这就是我们的持久化数据 RDB持久化,保存的是一种状态, ...

  8. Redis的RDB与AOF持久化机制

    所谓持久化,就是把缓存内容写进磁盘永久存储(你不删,磁盘不坏可不就是永久嘛) RDB RDB 是 Redis 默认的持久化方案. RDB快照(Redis DataBase):当满足一定条件的时候,会把 ...

  9. redis开启rdb和aof后文件正确恢复

    1.服务器环境: 3主3从,192.168.24.16,192.168.24.17,192.168.24.18,每一台服务器上2个节点,分别为主节点和从节点  2.备份 开启的备份策略是默认的rdb, ...

  10. redis配置RDB、AOF以及RDB、AOF同时开启

    https://www.jianshu.com/p/a91329ae210c 1.配置RDB持久化机制 redis.conf文件,也就是/etc/redis/6379.conf,去配置持久化 save ...

最新文章

  1. .net 4.0下载
  2. android 多个url请求,[Android]Retrofit多base_url请求解决方案
  3. php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解
  4. c++读取文件–结束条件的判断
  5. JavaMail(2)——给多人发送、抄送
  6. 机器学习基础(二十四)—— Random Forest
  7. 图文详解互联网根基之HTTP
  8. 【5】线性反馈移位寄存器
  9. 卡巴斯基的离线更新以及病毒库备份
  10. Java基础——动态数组
  11. Wincc声音报警简单方法
  12. 【解决办法】adobe audition打不开 显示MSVCR71.dll丢失
  13. 自然语言处理技术的进展和趋势
  14. APP支付和H5网页支付有哪些不同?
  15. 操作系统原理,物理内存“扩充”技术,内存紧缩,覆盖,交换,虚拟内存思想
  16. f烽火ExMobi,移动应用平台的互联网思维
  17. ISO26262 功能安全(1)--概览学习
  18. 1504.ICCVPartial Person Re-Identification 论文笔记
  19. android百度地图小人头像怎么做,出包女王村雨静-小静-Murasame Oshizu-头像图片-资料介绍-acg人物点评...
  20. Python 时间处理/datetime/arrow/日期处理

热门文章

  1. netcat基本使用方法总结
  2. 解决Windows10/11系统桌面背景或者IDE背景出现的莫名其妙的方框/格子
  3. transition详解
  4. Linux Ubuntu 虚拟机不能连网、Linux Ubuntu 虚拟机怎么连网
  5. 苹果表情 保存mysql_IOS表情存入MYSQL数据库失败
  6. vite简介,使用vite创建项目的优势
  7. int const *和int * const以及const int * const的区别
  8. 实现防火墙的主要技术
  9. WebBrowser控件[Windows窗体]之介绍篇
  10. JSON.stringfy()详解