【Redis 开发】Redis持久化(RDB和AOF)

2024-04-27 23:20
文章标签 开发 redis 持久 rdb aof

本文主要是介绍【Redis 开发】Redis持久化(RDB和AOF),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Redis持久化

  • RDB
  • AOF
  • RDB和AOF的区别

RDB

RDB全称Redis DataBase Backup file (Redis数据备份文件),也被称为Redis数据快照,简单来说就是把内存中的所有数据都记录到磁盘中,当Redis实例故障重启后,从磁盘读取快照文件,恢复数据

快照文件称为RDB文件,默认是保存在当前的运行目录

在这里插入图片描述
执行save命令就是在由Redis的主进程在进行执行备份操作
在这里插入图片描述
这种保存指令不会影响其他进程的运行,是在后台进行保存的
bgsave开始时会fork主进程等到子进程,子进程共享主进程的内存数据,完成fork后读取内存数据并写入RDB文件(复制主进程创建的页表),用新的RDB文件替换旧的RDB文件

当主进程执行读操作时,访问共享内存

当主进程执行写操作时,则会拷贝一份数据,并执行写操作

在这里插入图片描述

一般在Linux下的服务器在进行关机的时候会触发一次RDB进行保存
Redis内部有触发RDB的机制,可以在Redis.conf文件中找到:
在这里插入图片描述
RDB的其他配置也可以在redis.conf文件中设置:
在这里插入图片描述
RDB的缺点:

  1. RDB执行间隔时间长,两次RDB之间写入数据有丢失的风险
  2. fork子进程,压缩,写出RDB文件都比较耗时
  3. 加入我在最后60秒的时间时进行写操作保存文件的时候Redis服务器宕机了,这个时候正在写的数据就会完全丢失

在配置文件中进行save配置的时候如果是
save "":表示在该Redis系统中禁用RDB服务

AOF

AOF全称 APPend Only File (追加文件),Redis处理的每个写命令都会记录在AOF文件,可以看作时日志命令文件

AOF文件的格式:
在这里插入图片描述
$:符号表示命令的字符长度

AOF是默认关闭的,需要修改redis.conf配置文件来开启AOF:
在这里插入图片描述
AOF的命令记录的频率也可以通过redis.conf配置文件来进行配置
在这里插入图片描述
第一种的数据安全性是最高的,但是他的性能是最差的,一般默认选的是第二种方式,但是在第二种方式中,如果在这一秒时间内服务器宕机了,那么这一秒内的命令就会丢失
在这里插入图片描述
AOF文件中记录命令所以文件比RDB大很多,而且许多重复的命令只有最后的一条命名会生效,可以让AOF文件执行重写功能,用最少的命令达到相同效果

例如:
set name jack, set num 456
就会在重写之下成为:mset name jack num 456

Redis也会在触发阈值时自动去重写AOF文件,阈值可以在Redis.conf中进行配置
在这里插入图片描述

RDB和AOF的区别

在这里插入图片描述

这篇关于【Redis 开发】Redis持久化(RDB和AOF)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941761

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

redis+lua实现分布式限流的示例

《redis+lua实现分布式限流的示例》本文主要介绍了redis+lua实现分布式限流的示例,可以实现复杂的限流逻辑,如滑动窗口限流,并且避免了多步操作导致的并发问题,具有一定的参考价值,感兴趣的可... 目录为什么使用Redis+Lua实现分布式限流使用ZSET也可以实现限流,为什么选择lua的方式实现

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L