首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Redis 百问百答 - 05 什么是Redis持久化

Redis 百问百答 - 05 什么是Redis持久化

作者头像
用户7447819
发布2021-07-23 11:37:35
发布2021-07-23 11:37:35
3160
举报
文章被收录于专栏:面试指北面试指北

1. 什么是持久化?

持久化把内存中的数据存储到硬盘中,有效避免进程退出造成的数据丢失。

2. 持久化的方式

2.1 RDB Redis DataBase

  • 功能核心函数, rdbSave rdbLoad
  • 把当前进程的快照数据保存到硬盘中
2.1.1 触发机制
1. 手动触发
  • save 阻塞当前Redis 服务器。
  • bgsave Redis进程执行fork创建子进程,持久化由子进程完成。
2. 自动触发
  • 使用save相关配置
  • 从节点执行全量复制操作
  • 执行debug reload命令重新加载Redis
  • 默认情况下执行shutdown命令。
2.1.2 优点
  • 代表Redis某个时间点上的数据快照。
  • 用户备份,全量复制
  • Redis 加载RDB恢复数据远远快于AOF
2.1.3 缺点
  • 无法做到实时持久化,秒级持久化
  • 二进制格式,存在兼容问题

2.2 AOF Append-only file

  • 以独立日志的方式记录每次写命令,解决实时性问题。
  • 默认不开启,配置appendonly yes。
  • 核心函数 flushAppendOnlyFile
  • 每当执行服务器任务或函数时,flushAppendOnlyFile 都会被调用。
  • WRITE:根据条件,将aof_buf中的缓存写入AOF文件
  • SAVE: 根据条件,调用fsync fdatasync 命令,把AOF文件保存到磁盘中
  • 存储结构:内容是Redis通讯协议格式的命令文本存储。
2.3 AOF 和 RDB对比
  • AOF 比 RDB 更新频率更高,优先使用AOF还原数据
  • AOF 比 RDB更安全,更大
  • RDB性能比AOF好
  • 优先加载AOF
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面试指北 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 什么是持久化?
  • 2. 持久化的方式
    • 2.1 RDB Redis DataBase
      • 2.1.1 触发机制
      • 2.1.2 优点
      • 2.1.3 缺点
    • 2.2 AOF Append-only file
      • 2.3 AOF 和 RDB对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档