> 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化。
Redis持久化有两种方式:`RDB(快照模式)`、`AOF(追加模式)`。
## AOF持久化 (目前主流的用法)
AOF持久化:**以独立日志的方式记录每次写命令**,删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用 是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。
**主要特点**:
* Append only file,采用追加的方式保存,默认文件为appendonly.aof;
* 记录所有的**写操作命令**,在服务启动的时候**重演这些命令**就可以还原数据库;
* AOF默认关闭,需要在配置文件中手动开启。
开启AOF:
~~~
redis 127.0.0.1:6379> config set appendonly yes
OK
~~~
## RDB持久化
RDB持久化**是在指定的时间间隔内把当前进程数据生成快照保存到硬盘的过程**,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。触发RDB持久化过程分为手动触发和自动触发。
手动触发:
~~~
redis 127.0.0.1:6379> save
OK
~~~
自动触发:
~~~
127.0.0.1:6379> bgsave
Background saving started
~~~