本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众号。
RDB
RDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介。
触发机制--主要三种方式
- save 同步命令(会阻塞redis)
- bgsave 异步命令(fork)
- 自动
- #关闭自动保存配置#save 900 1 #900秒 改了一次就自动生成RDB文件#save 300 10 #300秒修改了10次就自动生成RDB文件
- dbfilename dump-${port}.rdb #rdb文件名
- dir /bigdiskpath #分盘,rdb文件保存位置
- stop-writes-on-bgsave-error yes #bdsave出错,停止写入
- rdbcompression yes #采用压缩位置
- rdbchecksum yes #开启校验和
AOF
RDB存在的问题:耗时耗性能,阻塞丢失数据
AOF运行原理:每执行一条命令,就在AOF中增加一条记录。当需要恢复时,直接执行AOF写入redis
AOF三种策略
- always(每条命令都把缓冲区fsync到硬盘)
- everysec(每秒刷新一次,每秒吧缓冲区fsync到硬盘)
- no(跟随操作系统,有操作系统决定,不可控)
AOF重写配置
- AOF重写配置
- auto-aof-rewrite-min-size #AOF重写需要的最小尺寸
- auto-aof-rewrite-percentage #AOF文件增长率
- aof_current_size #统计当前aof文件大小
- aof_base_size #aof上次启动和重写的尺寸
区别
总结
AOF是全量备份,RDB是增量备份。