redis 详解(4)持久化
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 定义 redis 所有数据保存在内存中,对数据更新将异步保存到磁盘 持久化的作用 方式 说明 快照 mysql dump,redis RDB 日志 mysql binlog,redis AOF,hbase Hlog RDB 定义 redis 创建二进制的 RDB 文件 redis 启动载入已经存在的 RDB 文件 三种主要方式触发 save(同步) client 发送 save 命令到 server,server 创建 RDB 文件,会阻塞主进程 如果存在老文件,新文件会替换老文件 时间复杂度 O(n) bgsave(异步) client 发送 bgsave 命令到 server,server fork 一个子进程创建 RDB 文件 server 返回给 client 成功信息 命令 save bgsave IO 类型 同步 异步 是否阻塞 是 是,阻塞发送在 fork 时间复杂度 O(n) O(n) 优点 不会消耗额外内存 不阻塞客户端命令 缺点 阻塞客户端命令 需要 fork,消耗内存 自动配置 配置 seconds changes save 900 1 save 300 10 save 60 10000 其他方式触发 全量复制 debug reload shutdown 总结 RDB 是 redis