redis快照和AOF简介

数据持久化到硬盘:一是快照(snapshotting),二是只追加文件(append-only file AOF)

快照

核心原理:redis某个时间内存内的所有数据写入硬盘

场景:redis快照内存里面的数据

1. 用户发送bgsave命令  (此时redis会fork一个子进程,子进程负责生成硬盘文件,父进程负责继续接受命令)
2. 用户发送save命令  (和bgsave命令不同,发送save命令后,到系统创建快照完成之前系统不会再接收新的命令,换句话说save命令会阻塞后面的命令,而bgsave不会)
  例如 :save 60 1000
  满足"60秒内有1000次写入"这个条件,系统就自动调用bgsave,如果配置文件里有多个save命令,只有满足一个就调   用bgsave命令
3.用户发送shutdown,系统会先导员save命令阻塞客户端,然后关闭服务器
4.当有主从架构时,从服务器向主服务器发送sync命令来执行复制操作时,只有主服务器当时没有进行bgsave操作,那么主服务器就会执行bgsave操作

快照的劣势

可能会丢失数据
save 60 1000,如果我在60秒内只更新了800条数据,然后系统崩溃了,那么这800条数据就没了

AOF

核心原理:所有的redis数据写操作的命令记录到硬盘上,这样一来恢复的时候,再执行一次命令就OK了

设置属性:

appendonly no                   

#是否开启aof  
appendfsync everysec  一般使用

#always,everysec,no
always就是每次有一个写命令,就把命令存的硬盘文件里
everysec就是每秒写入硬盘一次
no就是由操作系统来确认什么时候写
no-appendfsync-on-rewrite no

#设置在rewrite的时候是否对新的写操作进行fsync(将缓存中的命令写入硬盘)。no表示进行fsync,yes表示不进行默认是设置为no

aof优势在于:

就算出问题了,最多丢失1秒内的更新数据
aof的劣势:
aof文件的体积可能会很大(可能比快照文件还大),另一方面,系统重启的时候回从aof里读命令,如果aof文件太大,读命令也就要还很久

转载于:https://my.oschina.net/u/3098425/blog/1929796

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值