Redis持久化

1. RDB(快照)持久化:保存某个时间点的全量数据快照

 SAVE:阻塞Redis的服务器进程,直到RDB文件被创建完毕

 BGSAVE:Fork出一个子进程来创建RDB文件,不阻塞服务器进程

 自动化触发RDB持久化的方式:根据redis.conf配置里的SAVE m n定时触发(用的是BGSAVE)、主从复制时主节点自动触发、执行Debug Reload、执行Shutdown且没有开启AOF持久化。

 通过RDB文件恢复数据:将dump.rdb 文件拷贝到redis的安装目录的bin目录下,重启redis服务即可[1]。

 优点:全量数据快照,文件小、恢复快。

 缺点:内存数据的全量同步,数据量大的话会由于IO而严重影响性能,可能会因为Redis挂掉而丢失从当前至最近一次快照期间的数据。

2. AOF(Append Only File)持久化:采用日志的形式来记录每个写操作,并追加到AOF文件中。

   根据AOF文件恢复数据:正常情况下,将appendonly.aof 文件拷贝到redis的安装目录的bin目录下,重启redis服务即可。但在实际开发中,可能因为某些原因导致appendonly.aof 文件格式异常,从而导致数据还原失败,可以通过命令redis-check-aof --fix appendonly.aof 进行修复[1]。

 AOF重写机制:AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多,所以 Redis 新增了重写机制。当AOF文件的大小超过所设定的阈值时,Redis就会对AOF文件的内容压缩。

 重写的原理:Redis 会fork出一条新进程,读取内存中的数据,并重新写到一个临时文件中,最后替换掉旧的AOF文件。

 优点:可读性高、完整性好、不易丢失,适合保存增量数据。

 缺点:文件体积大、回复时间长。

3. RDB-AOF混合持久化方式(默认)

 BGSAVE做镜像全量持久化,AOF做增量持久化。AOF用来保证数据不易丢失,RDB用来做不同程度的冷备。

 

参考网页:

[1] http://www.cnblogs.com/itdragon/p/7906481.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值