持久化需求说明
redis数据都保存再内存中,如果内存断点则导致数据的丢失。为了保证用户的内存数据不丢失,需要开始持久化策略。
什么是持久化:定期将内存中的数据保存到磁盘中。
持久化介绍
redis中持久化方式主要有2种。
- RDB模式,dump.rdb,是redis种默认的持久化策略。
- AOF模式,appendonly.aof,默认关闭的,需要手动开启
RDB模式
特点:
- RDB模式可以实现定期的持久化,但是可能导致数据丢失。
- RDB模式做的是内存数据的快照,并且后拍摄的快照会覆盖之前的快照。
命令
用户可以通过命令要求redis进行持久化操作。 - save:是同步操作,要求redis立即执行持久化操作,用户可能会陷入阻塞状态。
- bgsave:是异步操作,开启单独的线程执行持久化操作,持久化时不会影响用户的使用。但是不能保证立即马上执行。
持久化策略说明:
save 900 1:说明redis再900秒内执行1次set操作时,则持久化一次。
用户操作越频繁,则持久化周期越短。
持久化目录
指定持久化文件路径
持久化文件名称的设定
AOF模式
特点:
- AOF模式在redis中是默认关闭的,需要手动开启
- AOF模式记录的是用户的执行的状态。所以持久化文件占用空间相对较大,回复数据的速度较慢,所以效率较低
- 可以保证用户的数据尽可能不丢失
开启AOF模式
AOF模式的持久化策略
关于RDB/AOF模式特点
- 如果用户可以允许少量的数据丢失,可以选用RDB模式,因为RDB较快
- 如果用户不允许数据丢失,则选用AOF模式
- 实际开发中,一般2种方式都会配置,一般主机开启RDB模式,从机开启AOF模式
如果在线上执行了flushALL命令,应该怎么办?
- 应该将AOF模式中flushALL删除,之后重启redis即可。