IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis持久化之AOF -> 正文阅读

[大数据]Redis持久化之AOF

简析RBD的缺陷:

①RDB是存储某个时间点的数据状态,用的是快照的方式,不管是使用命令还是设置配置都无法满足实时持久化的需求,很有可能造成数据的丢失

②RDB持久化需要调用fork函数生成子进程去进行持久化会造成性能上的损失

解决思路:

①不记录全部数据,仅记录部分数据

②改记录数据变成记录操作

③对所有操作记录,排除数据的丢失

所以Redis推出了AOF机制:改记录数据为记录操作

AOF作用:实时持久化数据

目前已经成为Redis持久化的主流方式

AOF写数据的过程:

?AOF写数据的三种策略

①always(每次)

? ? ? ?每次写入操作均同步到aof文件中,数据零误差,性能较低

②everysec(每秒)

? ? ? ? 每秒将缓存中的指令同步到AOF文件中,数据准确性较高,性能较高

? ? ? ? 在系统宕机的情况下只丢失1s的数据

③no(系统控制)

? ? ? ? 由操作系统控制每次同步到AOF文件的周期,整体过程不可控

AOF功能的开启:

·配置

appendonly yes

作用:是否开启AOF持久化,默认不开启

·配置

appendfsync always|everysec|no

作用:AOF写数据的策略

AOF相关配置:

·配置

appendfilename filename

作用:AOF持久化文件名,默认appendonly.aof,建议appendonly-端口号.aof

·配置

dir

作用:AOF持久化文件路径与RDB持久化文件路径一致

?

?我将AOF持久化策略设置为always,可以看到每次操作都会记录到aof文件中

?

?如果执行set sno 183206207 再执行 set sno 183206227,这样看显然第一次的操作记录是累赘的,有没有办法就是只记录最后一次的操作,肯定有,如果没有的话,aof记录的操作将会很庞大。接下来就是我要介绍的AOF重写,

AOF重写

什么是AOF重写:简单点说就是对同一个数据的进行的若干操作将最后的结果转换为操作指令

AOF重写的好处:

①提高磁盘的利用率

②提高持久化的效率

③提高数据恢复的效率

AOF的重写策略:

①进程中已经过期的数据不再写入文件中

②忽略无效指令,生成最终数据的操作指令

③对同一条数据的若干操作指令进行一个合并

说明:为了防止客户端缓冲区溢出,对list、set、hash、zset等类型,每条指令最多写入64个元素

AOF重写方式:

①手动重写

bgrewriteaof

②自动重写

·自动重写触发条件设置

auto-aof-rewrite-min-size size
auto-aof-rewrite-percentage percentage

?·自动重写触发比对参数(运行指令info Persistence获取具体信息)

aof_current_size
aof_base_size

·自动重写触发条件?

aof_current_size>auto-aof-rewrite-min-size

(aof_current_size-aof_base_size)/aof_base_size >= auto-aof-rewrite-percentage

?aof手动重写的执行流程:

?aof工作流程:

?

?

?RBD与AOF的对比:

持久化方式RDBAOF
占用存储空间
存储速度
恢复速度
数据安全会丢失数据依据策略决定
资源消耗
启动优先级

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:01:04  更:2021-11-24 08:01:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:56:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码