Redis是内存数据库,如果发生宕机RAM将丢失数据无法恢复,因此Redis数据需要落盘,本文阐释Redis持久化方案及实践方法
AOF机制 – 增量方式
每正确执行一条写数据指令,将该指令字符串追加到AOF文件末尾
可选策略与场景
redis.conf文件中的appendfsync选项
策略配置 | 策略说明 | 适用场景 |
---|---|---|
appendfsync=always | 每条指令立即落盘 | 对数据安全要求较高,对性能要求不严格 |
appendfsyn=ceverysec | 指令写入缓冲区,每次落盘与上次落盘间隔1s后将缓冲区指令落盘 | 宕机时可容忍1s的数据丢失,性能是其他两者的折衷 |
appendfsync=no | 指令写入缓冲区,由操作系统决定缓冲区如何落盘(一般为写缓冲区满) | 并发量大,对性能要求很高,对数据安全要求不严格 |
#### rewrite机制
AOF文件过大会造成写入性能变差和恢复时间长等问题,为压缩文件大小,rewrite机制应运而生
RDB机制 – 全量方式
RDB机制是数据库全量数据物理落盘
可选策略
RDB和AOF怎么选
一定频率的全量备份
两次全量备份之间适用增量备份
Redis备份和恢复
参考资料
黄健宏. Redis设计与实现[M]. 1. 机械工业出版社 , 2014.
Redis persistence: How Redis writes data to disk (append-only files, snapshots, etc.