面试题:redis的持久化?

Redis的持久化:

Redis的持久化是指将Redis数据存储到硬盘中,以防止服务器宕机导致的数据丢失。Redis提供了两种持久化机制:RDB和AOF。

RDB(Redis DataBase):

RDB是Redis的原始持久化方式,它将数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。RDB是以二进制文件的形式持久化数据,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。

RDB的触发方式

  • 手动触发:通过命令手动生成快照

  • 自动触发:通过配置参数的设置触发自动生成快照

缺点:

  1. 快照时间有间隔,不能实时备份,丢失数据可能会比较多

  2. 开启子进程备份数据,在数据集比较庞大时,fork()可能会非常耗时,造成服务器在一定时间内停止处理客户端。

优点:

1.恢复数据比较快

2.备份的文件就是原始内存数据的大小,不会额外增加数据占用,

AOF(Append Only File):

AOF是Redis的文件持久化方式,它将数据写入到文件中,文件中的数据是持久化的,即使文件被删除,数据也可以持久化。AOF是以文本文件的形式持久化数据,适用于大规模数据的持久化,因为每次操作不需要进行二进制压缩和解压缩。

将客户端的每一个写操作命令以日志的形式记录下来,追加到appendonly.aof的文件末尾,在redis服务器重启时,会加载aof文件中的所有命令,来达到数据恢复的目的

当有写命令请求时,会追加到AOF缓冲区内,AOF缓冲区根据AOF持久化策略将操作同步到磁盘的AOF文件中,当AOF文件大小超过重写策略或手动重写时,会对AOF文件进行重写来压缩AOF文件容量,redis服务重启时,会重新加载AOF文件中的写操作来进行数据恢复

AOF的触发方式

1.手动触发

通过bgrewriteaof命令:手动触发 AOF 操作,重新生成 AOF 文件,从而触发重写操作。

2.自动触发

appendonly no //是否开启AOF持久化 yes为开启 no为关闭

appendfilename "appendonly.aop" //追加文件名

AOF的优缺点

优点:

  • 数据安全性高,不易丢数据

  • AOF文件有序保存了所有写操作,可读性强

缺点:

  • AOF方式生成文件体积大

  • 数据恢复速度比RDB慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值