很多时候我们需要将Redis进行持久化也就是说将存储在内存中的数据写入到硬盘中,大部分原因是为了之后重用数据(比如说机器重启),或者是为了防止系统故障而进行的备份。
Redis提供两种持久化的机制,一种是快照持久化(RDB) ,另一种是只追加文件持久化(AOF) 。下面我们分别来介绍下面两种持久化机制。
一、RDB持久化
我们可以通过创建快照来获取存储在内存中的数据在某个时间点上的副本,Redis在创建快照后,我们可以将快照复制到其它的服务器上从而创建相同数据的服务器副本;或者是将快照留在原地用于机器重启的时候使用。
快照持久化是Redis默认采用的持久化方式。
二、AOF持久化
相比RDB持久化,AOF持久化的实时性更高,所以大多数使用的都是AOF持久化,Redis默认不开启AOF持久化,可以通过appendonly
参数来开启AOF持久化:
appendonly yes
开启了AOF持久化之后,当执行会发生数据修改的命令时,Redis都会将该命令写入到aof文件中。AOF文件的保存位置和RDB文件的位置一样,可以使用dir
参数来进行修改,aof的默认文件名是appendonly.aof
。
aof有下面三种持久化的机制: