【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

相关文章

Redis持久化机制之RDB与AOF的使用

《Redis持久化机制之RDB与AOF的使用》:本文主要介绍Redis持久化机制之RDB与AOF的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis持久化机制-RDB与AOF一、RDB持久化机制1、RDB简介2、RDB的工作原理3、RDB的优缺点4

基于Redis实现附近商铺查询功能

《基于Redis实现附近商铺查询功能》:本文主要介绍基于Redis实现-附近商铺查询功能,这个功能将使用到Redis中的GEO这种数据结构来实现,需要的朋友可以参考下... 目录基于Redis实现-附近查询1.GEO相关命令2.使用GEO来实现以下功能3.使用Java实现简China编程单的附近商铺查询4.Red

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

Redis中RedisSearch使用及应用场景

《Redis中RedisSearch使用及应用场景》RedisSearch是一个强大的全文搜索和索引模块,可以为Redis添加高效的搜索功能,下面就来介绍一下RedisSearch使用及应用场景,感兴... 目录1. RedisSearch的基本概念2. RedisSearch的核心功能(1) 创建索引(2

Redis中HyperLogLog的使用小结

《Redis中HyperLogLog的使用小结》Redis的HyperLogLog是一种概率性数据结构,用于统计唯一元素的数量(基数),本文主要介绍了Redis中HyperLogLog的使用小结,感兴... 目录 一、HyperlogLog 是什么?️ 二、使用方法1. 添加数据2. 查询基数China编程3.

Redis中的数据一致性问题以及解决方案

《Redis中的数据一致性问题以及解决方案》:本文主要介绍Redis中的数据一致性问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Redis 数据一致性问题的产生1. 单节点环境的一致性问题2. 网络分区和宕机3. 并发写入导致的脏数据4. 持

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re