Redis的持久化

redis持久化包括两种方式:

  • RDB快照方式

RDB快照,是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。这样在下次恢复的时候可以直接从快照进行恢复,因此恢复速度相对较快。

但RDB方式,因为是定期才快照,通常是每隔5分钟,或者更长时间生成一次,这个时候就得接受一旦Redis进程宕机,那么会丢失最近5分钟的数据。

RDB快照,不占用主线程,当数据变化时,会新起一个子线程进行备份,所以不影响正常的业务。但当数据特别大时,可能会对主线程有一定的影响。

  • AOF写日志文件

AOF方式,则可以配置多种模式,比如:每分钟、每次、从不等。在这个配置时间内,当有写(新增/删除/更新)的命令时,把这些命令原始的记录到AOF文件中,以后恢复时,再顺序执行AOF文件进行恢复,也正是因为这样,恢复速度较慢。

对于数据的安全性而言,AOF因为支持每次都记录,所以较安全一些,同时如果使用每次都记录,性能必然会下降一些的。

 

生产环境建议方案:一般同时使用RDB和AOF,RDB用于冷备,当出现故障时,能快速恢复。而AOF可以保证数据不会丢失太多,也是生产中需要使用的。

你可能感兴趣的:(架构师实战之数据访问层)