1.Redis全部的数据保存在内存中,对数据的更新将异步的保存到磁盘上。segmentfault
2.持久化的方式:快照(MySQL Dump和Redis RDB)、写日志(MySQL Binlog和Redis AOF)安全
3.Redis RDB触发方式app
命令 | save | bgsave |
---|---|---|
IO类型 | 同步 | 异步 |
是否阻塞 | 是 | 是(发生在fork()) |
复杂度 | O(n) | O(n) |
优势 | 不会消耗额外内存 | 不阻塞客户端命令 |
缺点 | 阻塞客户端命令 | 须要fork 消耗内存 |
4.自动生成RDB的配置,本质是每seconds会有changes个改变 就会执行bgsave。异步
相关配置:性能
最佳实践:spa
5.rdb生成触发机制 全量复制、debug reload 、shutdown。操作系统
6.RDB耗时、耗性能。debug
7.RDB不可控、有可能丢失数据。日志
8.AOF 的三种策略进程
命令 | always | everysec | no |
---|---|---|---|
优势 | 不丢失数据 | 每秒一次fsync | 不用管 |
缺点 | IO开销较大 通常sata盘只有几百TPS | 丢一秒数据 | 不可控 |
9.AOF重写做用 减小硬盘占用量、加速恢复速度。AOF重写实现的两种方式:bgrewriteaof、AOF重写配置。
10.AOF重写配置
11.AOF配置最佳实践
12.RDB和AOF对比
命令 | RDB | AOF |
---|---|---|
启动优先级 | 低 | 高 |
体积 | 小 | 大 |
恢复速度 | 快 | 慢 |
数据安全性 | 丢数据 | 根据策略决定 |
轻重 | 重 | 轻 |