Redis持久化策略

持久化需求说明

redis数据都保存再内存中,如果内存断点则导致数据的丢失。为了保证用户的内存数据不丢失,需要开始持久化策略。
什么是持久化:定期将内存中的数据保存到磁盘中。

持久化介绍

redis中持久化方式主要有2种。

  1. RDB模式,dump.rdb,是redis种默认的持久化策略。
  2. AOF模式,appendonly.aof,默认关闭的,需要手动开启

RDB模式

特点

  1. RDB模式可以实现定期的持久化,但是可能导致数据丢失。
  2. RDB模式做的是内存数据的快照,并且后拍摄的快照会覆盖之前的快照。
    命令
    用户可以通过命令要求redis进行持久化操作。
  3. save:是同步操作,要求redis立即执行持久化操作,用户可能会陷入阻塞状态。
  4. bgsave:是异步操作,开启单独的线程执行持久化操作,持久化时不会影响用户的使用。但是不能保证立即马上执行。
    持久化策略说明
    save 900 1:说明redis再900秒内执行1次set操作时,则持久化一次。
    用户操作越频繁,则持久化周期越短。
    Redis持久化策略_第1张图片

持久化目录
指定持久化文件路径
Redis持久化策略_第2张图片
持久化文件名称的设定
Redis持久化策略_第3张图片

AOF模式

特点

  1. AOF模式在redis中是默认关闭的,需要手动开启
  2. AOF模式记录的是用户的执行的状态。所以持久化文件占用空间相对较大,回复数据的速度较慢,所以效率较低
  3. 可以保证用户的数据尽可能不丢失
    开启AOF模式
    Redis持久化策略_第4张图片

AOF模式的持久化策略
在这里插入图片描述

关于RDB/AOF模式特点

  1. 如果用户可以允许少量的数据丢失,可以选用RDB模式,因为RDB较快
  2. 如果用户不允许数据丢失,则选用AOF模式
  3. 实际开发中,一般2种方式都会配置,一般主机开启RDB模式,从机开启AOF模式
    如果在线上执行了flushALL命令,应该怎么办?
  • 应该将AOF模式中flushALL删除,之后重启redis即可。

你可能感兴趣的:(Linux,redis)