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

Redis持久化

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的区别

在这里插入图片描述

相关推荐

  1. Redis——RDBAOF混合持久机制

    2024-04-27 23:28:04       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 23:28:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 23:28:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 23:28:04       87 阅读
  4. Python语言-面向对象

    2024-04-27 23:28:04       96 阅读

热门阅读

  1. 机器视觉检测技术是什么?突出的亮点有哪些?

    2024-04-27 23:28:04       32 阅读
  2. web页面点击右键显示按钮

    2024-04-27 23:28:04       32 阅读
  3. 目前还能使用的免费证书

    2024-04-27 23:28:04       28 阅读
  4. SIC知识(8)--碳化硅的制备难点

    2024-04-27 23:28:04       28 阅读
  5. 诡异的linux系统负载问题

    2024-04-27 23:28:04       34 阅读
  6. Swift手撸轮播效果

    2024-04-27 23:28:04       29 阅读
  7. 001 rabbitmq减库存demo direct

    2024-04-27 23:28:04       31 阅读
  8. 【C++】使用 std::shared_ptr 导致的循环引用问题

    2024-04-27 23:28:04       30 阅读
  9. mysql 连接数配置,解决Too many connections错误

    2024-04-27 23:28:04       27 阅读