目录
RDB、AOF及混合持久化详解
重度依赖Redis缓存集群的架构(例如大型购物网站),当Redis集群出现事故,且没有做Redis持久化的时候,会引起“缓存雪崩”的问题。
持久化的实现:RDB、AOF及混合持久化
RDB快照(snapshot)
这种机制在redis内存比较大(例如好几个G)的情况,是很耗费时间的。且当在执行rdb的save持久化操作时,会阻塞正常的redis请求。
修改save配置(redis.conf):
dump文件无法直接阅读。
bgsave命令(后台执行持久化save操作),称为写时复制机制(COW, Copy-On-Write)
命令 | save | bgsave |
IO类型 | 同步 | 异步 |
是否阻塞redis其他命令 | 是 | 否(生成一个子进程进行调用fork函数时会有短暂阻塞) |
时间复杂度 | O(n) | O(n) |
优点 | 不会消耗额外内存 | 不阻塞客户端请求 |
缺点 | 阻塞客户端请求 | 需要fork子进程,消耗内存 |
AOF(append-only file)
将修改数据(Redis 执行一个改变数据