redis持久化有那些方案,线上又是如何配置的呢?
Redis为我们提供了两种持久化方案,一种是RDB另外一种是AOF
RDB快照
RDB (Redis DataBase) 把当前进程数据生成快照保存到磁盘上的过程,由于是某一时刻的快照,那么快照中的值要早于或者等于内存中的值。
优点
- 基于某个时间节点的快照,压缩后文件体积小
- 加载RDB文件恢复快
缺点
- 实时性不够
- 通过bgsave进行备份时,需要fork一个子线程,频繁执行性能成本高
AOF
Redis是“写后”日志,Redis先执行命令,把数据写入内存,然后才记录日志。日志里记录的是Redis收到的每一条命令,这些命令是以文本形式保存。
优点
- 根据策略的不同AOF的方式能做到基本不丢失数据
缺点
- 文件体积大,AOF的文件体积要大于RDB
- 在大数据量情况下恢复速度慢
混合持久化
// 开启混合持久化
aof-use-rdb-preamble yes