自学reids第二天--持久化策略

本文探讨了Redis内存数据存储的特点,重点介绍了RDB和AOF两种持久化策略。RDB通过定期数据快照防止数据丢失,但存在fork进程导致资源消耗的问题;而AOF则实时记录命令,即使服务器故障也能恢复数据,但性能稍逊于RDB。
摘要由CSDN通过智能技术生成

首先我们要知道redis是存储在内存中的数据。

Redis在每一次重启时都会从硬盘中的存储文件中吧数据读到内存当中,在我们实际操作reids是,数据都是在内存当中的。

好了,知道这个之后我们就可以来了解什么是持久化策略了。reids不仅仅有着效率高的优势,还一个就是持久化。

Redis中的持久化策略分为两种(RDB,AOF)

RDB(Redis DATABase)

RDB是我们redis默认的一种策略。

原理:在指定的时间内对我们内存上的数据进行一次数据快照(可以理解为定时拍一张照片),然后将这个数据快照上传到我们的磁盘文件dump.rdb中。当我们重新启动reids时,就会自动读取dump.rdb中的数据到内存中,这样子就做到了持久化。

现在我们就要知道RDB是怎么进行数据快照的了,我们用户可以使用SAVE(同步) 和 bgsave(异步)。

也可以设置服务器的save选项,让服务器每隔一段时间执行一次bgsave。如

save:900 1

save:300 10

save:60 10000

意思就是服务器每隔900检查一次我们的数据库,如果有一次数据变动,就进行一次数据快照。

但是这里我们得注意,假如我们在这个900秒里面有数据进行了变动,但是在这个过程中我们的服务器突然宕机了,那么就会造成数据丢失,这是RDB的重大缺点之一。RDB在保存文件是都会开启一个子进程,不会打扰我们的主进程。但是数据量如果大了,就会造成耗费资源。

缺点:

每次保存都有fork()进程

可能意外造成数据丢失。

AOF(AppendOnly File)

aof默认是关闭状态的,需要在配置文件redis.conf开启aof。同时redis是支持我们的aof和rdb同时进行的。如果同时存在的话,aof的优先级要高于rdb。

原理:

aof会监听我们执行的命令,如果一旦发现了有修改数据的操作,就会将这个操作记录到我们的日志当中。这样子即时出现了问题一样能够重新回来。当我们重新启动redis时,就会读取日志中的操作,重新再执行一遍,这样子也能做到数据的持久性。

RDB的性能要高于aof

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值