一、概述
Redis的高性能由于其将所有数据都存储在了内存中,为了使redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。
1.1 RDB持久化(默认支持,无需配置)
该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘
快照的核心原理就是把redis在某个时间内存内的所有数据都写入硬盘。快照其实就是一备份。
1.2 AOF持久化
该机制将以日志的形式记录服务器所处理的每一个操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
二、RDB
2.1 优势
如果数据量很大的时候,不用像aof那样存储那么多的执行的过程,占用空间小。
2.2 劣势
rdb存快照是在某个时间点存的,所以,有可能会丢失数据。
2.3 配置说明Snapshotting
2.3.1 快照参数设置
我们查看redis.config
save 900 1 每900秒(15分钟)至少有1个key发生变化,则dump内存快照。
save 300 10 每300秒(5分钟)至少有10个key发生变化,则dump内存快照。
save 60 10000 每60秒(1分钟)至少有10000个key发生变化,则dump内存快照。
2.3.2 保存位置设置
三、AOF
3.1 优势
实时性好。每个操作步骤都保存了。不会丢失数据。
3.2 劣势
保存的日志太多了。
3.3 配置AOF
3.3.1 配置信息
always 每次有数据修改发生时都会写入aof文件
everysec 每秒同步一次,该策略为aof的缺省策略
no 从不同步。高效但是数据不会被持久化