7、redis持久化 RDB & AOF

因为是内存数据库reids中有两个持久化数据的方法:

1、RDB(redis databases)相当于快照的一个概念。

2、AOF(append only file)做增量,以日志的形式记录每一条操作数据。

RDB:在数据库中有两个命令

save:执行阻塞时拍摄快照,当执行这个命令后,redis不在接收操作来自客户端的数据,只有当这个命令结束后,才会继续接收处理客户端数据。

bgsave:这个操作能在保持redis正常运行的情况下,拍摄快照。它是创建一个子进程,将父进程的指针复制到子进程,再由子进程映射数据,然后 持久到数据库。创建子进程会使用fork方法,而fork方法继承了一个copy only write,这个的意思是在写数据的时候才会复制。但是这个有时间节点问题,当在8点整执行此命令,保存数据需要一个小时,当到8:50的时候redis挂掉了,name这50分钟期间的数据将会丢失,如果让redis做为缓存的话,这个问题不太要紧,只会造成部分穿透。但是要将redis作为数据库的情况下,就是灾难。由此引入AOF。

AOF:日志文件增量

可在配置文件中开启此模式,会以日志的形式存储起来,有点就是每条命令都会持久化到硬盘中,但是有个缺点,如果运行时间足够长,日志文件足够大的话,redis执行这个文件必然会溢出内存。在4.0版本之前,是对重复数据整合,以达到减少文件大小的一个目的。在4.0之后,RDB和AOF能同时开启,但只会执行AOF恢复,并且RDB会存到日志文件中,AOF作为增量附加到RDB之后。这样就实现了让次文件变小。

如果redis作为数据库会发生IO操作

kernel 读到文件码后 会创建一个buffer缓冲区,当缓冲区打满后,会放一组数据。而对于怎么打满缓冲区,多会flush,由redis配置文件决定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值