Redis持久化策略说明
1.持久化需求说明
说明:Redis数据都保存在内存中,如果内存你断电则导致数据的丢失,为了保证用户的内存数据不丢失,需要开启持久化机制。
什么是持久化:定期将内存中的数据保存到磁盘中。
2.Redis中持久化介绍
说明:Redis中的持久化方式主要有2种
方式1:RDB模式 dump.rdb 默认的持久化方式
方式2:AOP模式 appendonly.aof 默认关闭状态 需要手动开启
3.RDB模式
说明: RDB模式是Redis中默认的持久化策略.
特点:
- RDB模式可以实现定期的持久化,但是可能导致数据丢失.
- RDB模式作的是内存数据的快照,并且后拍摄的快照会覆盖之前的快照.所以持久化文件较小.恢复数据的速度较快. 工作的效率较高.
命令:
用户可以通过命令要求redis进行持久化操作.
1). save 是同步操作 要求redis立即执行持久化操作. 用户可能会陷入阻塞状态.
2). bgsave 是异步操作, 开启单独的线程执行持久化操作. 持久化时不会影响用户的使用. 不能保证立即马上执行.
持久化策略说明:
LG: save 900 1 redis在900秒内执行一次set操作时则持久化一次.
用户操作越频繁则持久化的周期越短.
持久化目录: 可以执行持久化文件生成的位置.
持久化文件名称的设定
4.AOF模式
特点:
- AOF模式默认的条件下是关闭状态,需要手动的开启.
- AOF模式记录的是用户的执行的状态.所以持久化文件占用空间相对较大.恢复数据的速度较慢.所以效率较低.
- 可以保证用户的数据尽可能不丢失.
配置:
1.开启AOF配置
开启之后重启服务,会生成AOF文件
2.AOF模式的持久化策略
appendfsync always 如果用户执行的了一次set操作则持久化一次
appendfsync everysec aof每秒持久化一次
appendfsync no 不主动持久化.
5.关于RDB/AOF模式特点
1.如果用户可以允许少量的数据丢失可以选用RDB模式(快)。
2.如果用户不允许数据丢失则选用AOF模式。
3.实际开发过程中一般两种方式都会配置,一般主机开启RDB模式,从机开启AOF模式。
6.情景题
假设不小心执行了flushALL命令,首先关掉Redis服务,删掉AOF文件中的flushALL命令,之后重启Redis服务即可。