redis持久化的两种方式
- RDB持久化
在指定的时间间隔内单独的子线程会对数据进行快照存储。 - AOF持久化(Append Only File)
记录每次服务器的写操作,当服务重启时会重新执行这些命令来恢复数据。
两种方式的优缺点
方式 | 优点 | 缺点 |
---|---|---|
RDB | 1.对性能影响小。2.数据恢复比AOF快很多 | 同步时容易丢失数据 |
AOF | 1.安全。2.容灾。3.易读。4.可修改 | 1.文件体积大。2.性能消耗比RDB更高。3.数据恢复比RDB更慢 |
使用RDB持久化
这是redis默认的持久化方式。在redis.conf
文件中SNAPSHOTTING
一栏下进行配置。
- 配置触发条件
save <多少秒触发> <多少次触发>
# 900秒内至少有一次写操作
save 900 1
# 300秒内发生10次写操作
save 300 10
# 60秒内发生10000次写操作
save 60 10000
- 如果期间redis服务突然挂掉会丢失数据,如果频率没达到也会丢失数据。
-
配置备份文件
dbfilename dump_6379.rdb
-
数据恢复
备份文件dump_6379.rdb
自动生成,直接重启redis即可恢复,简单快速。
使用AOF持久化
这是一种更好性能但更安全的持久化方式。在redis.conf
文件中APPEND ONLY MODE
一栏下进行配置。
-
打开AOF
appendonly yes
-
配置备份文件
appendfilename "appendonly_6379.aof"
-
数据恢复
备份文件appendonly_6379.aof
自动生成,直接重启redis即可恢复。
- 该文件可读性比较强,也可以直接修改数据内容,在恢复后数据自动改变。