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

本文对比了Redis的两种持久化机制——RDB(定期备份内存数据到磁盘)和AOF(每条写命令追加到文件),讨论了它们的工作原理、优缺点以及配置选项。RDB安全性较高但可能有数据丢失风险;AOF实时性强但文件较大,需要定期重写。
摘要由CSDN通过智能技术生成

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

在这里插入图片描述

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值