一共有两种方式:
- AOF(Append-only file)
- RDB(Redis database file)
首先需要知道Redis的操作都是在内存中完成的,因为这样速度快。
AOF
然后你可以启用AOF,它会把每个操作都记录到系统文件里。所以如果Redis服务器重启了,它会根据AOF这个文件来重建整个数据集。
这个文件会很快就变得很大,但是Redis很聪明,它会使用里面最新版本的数据,并压缩文件到可控大小。
修改配置文件将appendonly的值改成yes
appendonly yes
# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof"
RDB
RDB是Redis的默认模式,它有点像数据库的快照,创建一些时间点的数据,如果发生灾难,你可以从这些数据里进行恢复。
当达到一些条件的时候,例如数据集里面在某段时间内新添加了一定条目的数据,Redis就会把数据做个快照,并写入一个RDB文件。
最佳实践是两者都用,使用AOF因为其速度和可用性,使用RDB做灾难恢复。
修改配置文件
save 900 1
save 300 10
save 60 10000
save 5 1
里面的save 900 1 是指900秒过后,如果至少1个key改变了,那么就做一个快照。
新增一个5秒有1个key改变,就做一个快照