Redis 的 RDB 和 AOF
RDB
- Redis DataBase
- 每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存,如果宕机重启,那么内存里的数据肯定会没有的,那么再次启动 redis 后,则会恢复
- 内存备份 -> 磁盘临时文件
临时文件 -> 恢复到内存
- 内存备份 -> 磁盘临时文件
- 优势
- 4.1 每隔一段时间备份,全量备份
- 4.2 灾备简单,可以远程传输
- 4.3 子进程备份的时候,主进程不会有任何 io 操作(不会有写入修改或删除),保证备份数据的的完整性
- 4.4 相对 AOF 来说,当有更大文件的时候可以快速重启恢复
- 劣势
- 5.1 发生故障是,有可能会丢失最后一次的备份数据
- 5.2 子进程所占用的内存比会和父进程一模一样,如会造成 CPU 负担
- 5.3 由于定时全量备份是重量级操作,所以对于实时备份,就无法处理
- 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 # 不校验
- stop-writes-on-bgsave-error
AOF
- Append Only File
- 特点
- 2.1 AOF 更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,大大增加可靠性和数据完整性,所以 AOF 可以每秒备份一次,使用 fsync 操作
- 2.2 以 log 日志形式追加,如果磁盘满了,会执行 redis-check-aof 工具
- 2.3 当数据太大的时候,redis 可以在后台自动重写 aof,当 redis 继续把日志追加到老的文件中去时,重写也是非常安全的,不会影响客户端的读写操作
- 2.4 AOF 日志包含的所有写操作,会更加便于 redis 的解析恢复
- 优势
- 3.1 AOF 更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,大大增加了可靠性和数据完整性,所以 AOF 可以每秒备份一次,使用 fsync 操作
- 3.2 以 log 日志形式追加,如果磁盘满了,会执行 redis-check-aof 工具
- 3.3 当数据太大的时候,redis 可以在后台自动重写 aof,当 redis 继续把日志追加到老的文件中去时,重写也是非常安全的,不会影响客户端的读写操作
- 3.4 AOF 日志包含的所有写操作,会更加便于 redis 的解析恢复
- 劣势
- 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
- 5.1 AOF 默认关闭,yes 可以开启
Redis 的 RDB 和 AOF相关推荐
- redis rdb aof区别_干货|Redis的RDB和AOF
作者:Dvelpro 链接:https://blog.nowcoder.net/n/63c9812ce634474280675f3f6bb4d1ca 来源:牛客网 Redis的RDB和AOF 概述 R ...
- 【Linux服务器开发系列】一场redis线上事故引发的思考丨redis持久化 rdb和aof丨redis主从复制
一场redis线上事故引发的思考 1. 事故背景介绍 2. redis持久化 rdb和aof 3. redis主从复制 4. 解决方案详解 [Linux服务器开发系列]一场redis线上事故引发的思考 ...
- Redis持久化 - RDB和AOF
一.持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 持久化Redis所有数据保持在内存中,对数据的更新将异步地保 ...
- Redis持久化 RDB和AOF 比较与选择
Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘.当下次Redis重启时,利 ...
- redis持久化RDB和AOF
Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...
- linux 关闭redis 命令_面试必问的 Redis:RDB、AOF、混合持久化
前言 本来说 Redis 分3篇,但是上周写持久化时发现持久化的内容还越多的,于是持久化就单拆一篇了. 我估计后面的主从复制.哨兵.集群内容也是不少,所以说实话,我也不知道之前说的3篇会拆成几篇了 持 ...
- Redis——持久化RDB和AOF
Redis的持久化有两种方式,分别是RDB和AOF,其中默认的方式是RDB,我们可以看到,我们的redis里有一个dump.rdb,的文件,其实这就是我们的持久化数据 RDB持久化,保存的是一种状态, ...
- Redis的RDB与AOF持久化机制
所谓持久化,就是把缓存内容写进磁盘永久存储(你不删,磁盘不坏可不就是永久嘛) RDB RDB 是 Redis 默认的持久化方案. RDB快照(Redis DataBase):当满足一定条件的时候,会把 ...
- redis开启rdb和aof后文件正确恢复
1.服务器环境: 3主3从,192.168.24.16,192.168.24.17,192.168.24.18,每一台服务器上2个节点,分别为主节点和从节点 2.备份 开启的备份策略是默认的rdb, ...
- redis配置RDB、AOF以及RDB、AOF同时开启
https://www.jianshu.com/p/a91329ae210c 1.配置RDB持久化机制 redis.conf文件,也就是/etc/redis/6379.conf,去配置持久化 save ...
最新文章
- .net 4.0下载
- android 多个url请求,[Android]Retrofit多base_url请求解决方案
- php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解
- c++读取文件–结束条件的判断
- JavaMail(2)——给多人发送、抄送
- 机器学习基础(二十四)—— Random Forest
- 图文详解互联网根基之HTTP
- 【5】线性反馈移位寄存器
- 卡巴斯基的离线更新以及病毒库备份
- Java基础——动态数组
- Wincc声音报警简单方法
- 【解决办法】adobe audition打不开 显示MSVCR71.dll丢失
- 自然语言处理技术的进展和趋势
- APP支付和H5网页支付有哪些不同?
- 操作系统原理,物理内存“扩充”技术,内存紧缩,覆盖,交换,虚拟内存思想
- f烽火ExMobi,移动应用平台的互联网思维
- ISO26262 功能安全(1)--概览学习
- 1504.ICCVPartial Person Re-Identification 论文笔记
- android百度地图小人头像怎么做,出包女王村雨静-小静-Murasame Oshizu-头像图片-资料介绍-acg人物点评...
- Python 时间处理/datetime/arrow/日期处理
热门文章
- netcat基本使用方法总结
- 解决Windows10/11系统桌面背景或者IDE背景出现的莫名其妙的方框/格子
- transition详解
- Linux Ubuntu 虚拟机不能连网、Linux Ubuntu 虚拟机怎么连网
- 苹果表情 保存mysql_IOS表情存入MYSQL数据库失败
- vite简介,使用vite创建项目的优势
- int const *和int * const以及const int * const的区别
- 实现防火墙的主要技术
- WebBrowser控件[Windows窗体]之介绍篇
- JSON.stringfy()详解