Redis持久化策略
RDB
-
原理
RDB是redis默认的持久化策略,当redis的“写操作”达到指定次数,且距离上一次持久化达到指定间隔时间,就会将redis内存中的数据生成数据快照,保存到指定的rbd文件中 -
默认触发条件
- 900 1 (解释:当操作次数达到一次,900s就会进行一次持久化)
- 300 10
- 60 10000
-
redis.conf配置文件中关于RDB策略的语句
rbd持久化开关:rdbcompression yes
配置redis的持久化策略:save 900 1
指定rbd数据存储文件:dbfilename dump.rbd
-
rbd持久化策略的优缺点分析:
-
优点:
数据量较小的时候,执行速度较快。
rbd是通过数据快照的方式存储数据的,方便实现数据移植。 -
缺点:
若redis出现故障,存在数据丢失风险,可能会丢失在上一次持久化之后的数据操作。
数据快照不适用于实时性持久化。
数据量较大时,生成数据快照时间较长,redis容易卡顿,故save的时间周期不宜设置过短。
-
AOF
原理:将成功执行的写操作指令保存到aof文件中,当redis重启时,就执行aof文件中的指令以恢复数据
- 开启AOF
- appendonly yes
- 设置触发条件(三选一)
- appendfsync always //只要进行成功的“写操作”,就执行aof
- appendfsync everysec //每秒进行一次aof
- appendfsync no //让redis自行决定执行aof
- 设置aof文件路径
- appendfilename “appendonly.aof”
- aof持久化策略的优缺点分析:
- aof适合实时性持久化
- redis官方推荐同时开启rdb和aof这两种持久化策略(注意:aof默认是关闭的,需自行修改配置文件)。如果同时存在aof文件和rdb文件,aof文件优先