一、为什么要持久化
redis的高性能很大程度上得益于所有的数据存储在了内存上,但是当redis重启后,所有存储在内存上的数据都会丢失,所以我们提供了两种把redis数据备份到硬盘上的方式,当redis重启后由硬盘上的数据恢复redis的数据,这就是持久化的过程。
二、持久化的两种方式
1.RDB方式
RDB方式的持久化是通过快照的方式实现的,在一定触发条件下把redis在内存中所有的数据生成一份副本存储在硬盘中。默认保存在当前进程的工作目录中,名称为dump.rdb。当然存储路径和文件名可以通过配置文件更改。
1.1 根据配置规则进行自动快照
配置文件中有如下配置,用户可以更改。
save 900 1
save 300 10
save 60 10000
这三个条件是或的关系,表示在900秒内有1个或以上的键被改动时进行快照或者300秒内有10条及以上又或者60秒内有10000条及以上键被改动时触发快照。
1.2 用户执行SAVE和BGSAVE命令
1.3 执行FLAUSHALL命令时
只要自动快照条件不为空,执行FlAUSHALL命令就会触发快照。
2.AOF方式
AOF方式会将redis的每一条命令追加到硬盘文件中,默认是关闭的,通过更改配置文件中appendonly为yes开启,开启后,默认把追加文件写入到当前工作目录下,文件名默认为appendonly.aof。当然路径和文件名都可以从配置文件进行更改。