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】Redis四种持久化机制与选型参考 -> 正文阅读

[大数据]【中间件Redis】Redis四种持久化机制与选型参考

Redis提供有四种持久化方案,即RDB(Redis DataBase,DB快照)、AOF(Append Only File,追加文件)、No persistence(不进行持久化)、RDB + AOF(快照+追加文件)。
对于后面两种不再单独介绍
官方文档(In Eng):https://redis.io/topics/persistence

1.RDB(Redis DataBase,DB快照

RDB是一种快照式的持久化方案,即将某一时刻的数据持久化到磁盘中。

  • redis在进行数据持久化的过程中,会先将数据写入到一个临时文件中,待所有数据都写入临时文件后,才会用该临时文件替换前次持久化的文件(默认的文件命名为dump.rdb)。正是这种特性,让我们可以随时来进行备份,因为快照文件总是完整可用的。
  • 在RDB方案中,redis会单独创建(fork)一个子进程来进行持久化操作,而主进程是不会进行任何IO操作的,这样就确保了redis极高的性能。
  • 如果项目中对于数据的完整性不是那么敏感(丢失一部分缓存数据影响不大),可采用该机制。

2.AOF(Append Only File, 追加文件

AOF机制分为两个阶段:

  1. redis将每一个收到的写命令通过write函数追加到文件中,通俗的理解就是日志记录;
  2. 恢复过程重新执行一遍记录的写命令
  • 每次有新的写命令时AOF机制会将其追加到AOF文件(appendonly.aof)末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.默认的AOF持久化策略是每秒钟fsync一次(fsync是指把缓存中的写指令记录到磁盘中),在这种情况下,redis仍然可以保持很好的处理性能,即使redis故障,也只会丢失最近1秒钟的数据。
  • 如果在追加日志时遇到磁盘空间满、inode满或断电等特殊情况导致日志写入不完整,也没有关系。redis提供了redis-check-aof工具,可以用来进行日志修复。
  • 因为采用了追加方式,如果不做任何处理的话,AOF文件会变得越来越大,为此,redis提供了AOF文件重写(rewrite)机制,即当AOF文件的大小超过所设定的阈值时,redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集。举个例子或许更形象,假如我们调用了100次INCR指令,在AOF文件中就要存储100条指令,但这明显是很低效的,完全可以把这100条指令合并成一条SET指令,这就是重写机制的原理。
  • 在进行AOF重写时,仍然是采用先写临时文件,全部完成后再替换的流程,所以断电、磁盘满等问题都不会影响AOF文件的可用性。

默认机制

Redis默认使用的是RDB机制(即快照),通常项目对数据完整性的要求不是那么高的情况可以使用该机制。
redis.conf配置:

save 900 1 
save 300 10
save 60 10000

以上是默认配置:
900秒内,如果超过1个key被修改,则发起快照保存;
300秒内,如果超过10个key被修改,则发起快照保存 ;
60秒之内,如果1万个key被修改,则发起快照保存 ;

如不想使用上述默认机制,可通过修改配置文件中appendonly yes进行变更。

选型参考

1.如果想要获得可比于PostgreSql能提供给我们的数据安全程度,一般情况下我们应该结合使用RDB+AOF的机制;
2.如果关注数据安全,但是发生重大事故的情况下可以容忍几分钟的数据缺失,可以使用RDB机制;
3.有很多人在使用AOF机制,但是相比于RDB snapshot的数据库备份的个性化,快速重启特性并且in the event of bugs in the AOF engine , 不建议单独使用AOF。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:53:32  更:2022-02-06 13:54:23 
 
开发: 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 13:39:00-

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