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 DataBases):内存快照

触发RDB方式

优点

缺点

AOF(Append Only File):日志文件

AOF回写策略

优点

缺点


Redis持久化

数据安全性问题,将内存数据存储到磁盘当中,即持久化问题

RDB(Redis DataBases):内存快照

内存快照:就是指内存中数据在某一时刻的状态记录。RDB是Redis中默认的持久化方案。RDB持久化会将内存中的数据写入到磁盘中,在指定的目录下生产一个dump.rdb文件。Redis重启时会加载dump.rdb文件恢复数据.

Redis中提供了两个命令生成RDB文件,分别是save和bgsave。

save:是阻塞方式的,在主进程中执行,会导致阻塞。

bgsave:是非阻塞方式的,创建一个子进程,专门用来写入RDB文件,避免了主线程的阻塞,该方式是RDB文件生成的默认配置。

img

bgsave命令执行原理

  1. 执行bgsave命令;
  2. Redis中的父进程判断当前是否存在正在执行的子进程,如果存在,命令直接返回;
  3. 父进程fork操作创建子进程;
  4. 父进程完成fork操作之后,父进程可以继续接受并处理用户请求,而子进程负责将内存中的数据写入到磁盘中的临时文件;
  5. 当子进程完成所有数据写入后会用临时文件替换旧的RDB文件。

触发RDB方式

1. 手动触发:用户执行save或者bgsave命令

2. 被动触发:根据配置的规则进行自动快照

格式:save <seconds> <changes>

# save 3600 1 //每3600秒至少1个key发生改变,产生快照

# save 300 100 //每300秒至少100个key发生变换,产生快照

# save 60 10000//每60秒至少10000个key发生改变,产生快照

如何恢复RDB文件

只需要将RDB文件放在Redis的启动目录下,Redis启动时就会自动检查dump.rdb文件恢复其中的数据。

优点

  1. RDB加载Redis恢复数据远远快于AOF的方式;
  2. 使用单独的子进程来进程持久化,主进程不会进行任何的IO操作,保证Redis的高性能。

缺点

  1. RDB方式数据无法做到实时持久化,可能会存在数据丢失问题;
  2. 存在格式不兼容问题,RDB文件使用特定二进制格式保存,Redis在版本升级后,可能存在老版本Redis无法兼容新版本RDB格式问题。

AOF(Append Only File):日志文件

AOF持久化,以独立的日志的方式记录每次写命令,Redis重启是会重新执行AOF文件中的命令达到回复数据的目的。AOF主要作用是解决数据持久化的实时性。

默认情况下Redis没有开启AOF方式的持久化,可以通过appendonly参数启用:appendonly yes,开启AOF方式持久化每执行一条命令,Redis就会将命令写入到aof_buff缓冲区,AOF缓存会去根据对应的策略向磁盘做同步操作。默认情况在30秒就会执行一次同步操作,为了防止缓冲区数据的丢失。

AOF持久化执行流程:

img

  1. 所有的写入命令会追加到AOF缓冲区;
  2. AOF缓冲区根据对应的策略向磁盘同步;
  3. 随着AOF文要件越来越大,需要定期对AOF文件进行重写,达到压缩文件体积的目的,AOF文件重写是把Redis进程内的数据转化为写命令同步新AOF;
  4. 当Redis进行重启时,可以加载AOF文件进行数据恢复。

AOF保存文件:appendonly.aof

AOF回写策略

AOF机制提供了三个选择,即通过appendfsync配置三个可选项,有三种方式,默认是每秒everysec执行一次。

appendfsync always:同步写回,每个写命令执行完,立马同步将日志写回磁盘,保证完全持久化,最慢

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

appendfsync no:操作系统控制写回:每个命令执行完,先把日志写到AOF文件的内存缓冲区,由操作系统决定何时从缓冲区写回此判断,性能最好,持久化没法保证

优点

  1. AOF可以更好的保护数据不丢失,可以配置AOFeverysec操作,每秒执行一次,如果Redis挂掉,最多丢失1秒的数据;
  2. AOF是以Append-only的模型写入,没有磁盘寻址的开销,写入性能比较高。

缺点

  1. 对于同一份文件AOF文件比RDB数据快照要大;
  2. 数据恢复比较慢。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 09:57:56  更:2021-11-27 10:00:29 
 
开发: 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 7:52:38-

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