广告行业应用

云数据库 SCS

  • 功能发布记录
  • 产品描述
    • 功能概览
    • 灾备方案介绍
    • 产品特性
    • 业务场景
    • 多活实例组介绍
    • 产品架构
    • 可观测性能力介绍
    • 什么是云数据库 Redis
    • 使用须知
    • 热活实例组介绍
    • 云数据库 Redis 版初识与选型
      • Redis 容量型(原 PegaDB)产品介绍
      • 云数据库 Redis 版与自建 Redis 的对比
      • Redis 容量版与 Redis 社区版的特性对比
    • 行业案例
      • 广告行业应用
    • 实例规格
      • Memcached集群版
      • Redis 容量型(原PegaDB)数据库
      • Redis标准版
      • 边缘数据库Redis
      • Redis集群版
  • 重要通知
    • 品牌升级
  • Redis使用限制
    • 主从节点实例与集群的区别
    • 背景信息
    • 其他说明
    • Redis容量型(PegaDB)使用命令限制
    • Redis命令使用限制
  • 快速入门
    • 快速入门流程
    • 连接实例
    • 创建实例
  • 典型实践
    • Redis 事务使用注意事项
    • Redis Pipeline 机制介绍
    • 客户端配置注意事项
    • 消息发布与订阅
  • Memcached使用限制
    • Memcached-使用限制
  • 服务等级协议SLA
    • 百度智能云可信云
    • 云数据库Redis服务条款
    • Redis服务等级协议SLA
  • 最佳实践
    • 消息发布订阅
    • Redis设计规范与最佳实践
    • 避免大 Key 热 Key 实践指南
  • API参考
    • 通用说明
    • API规格
    • 附录
    • 错误返回
    • 使用须知
    • API简介
    • 多活实例组
      • 获取同步状态
      • 多活实例组删除
      • 前置检查
      • 多活实例组列表
      • 创建多活实例组
      • 修改多活实例组名称
      • 多活实例组详情
    • 部署集
      • 创建部署集API
      • 删除部署集API
      • 获取部署集列表API
      • 修改部署集API
    • 日志管理
      • 日志明细API
      • 日志列表API
      • 审计日志开关API
    • 网络安全
      • 域名交换
      • 删除IP白名单
      • 查询IP白名单
      • 修改访问密码
      • 增加IP白名单
    • 安全管理
      • 更新安全组API
      • TDE加密
      • 绑定安全组API
      • 查看安全组API
      • 解绑安全组API
      • 开启或关闭TLS加密API
      • 获取TLS证书API
    • 账号管理
      • 设置权限
      • 修改账号密码
      • 删除账号
      • 账号列表
      • 创建账号
    • 订单服务
      • 取消预付费转后付费API
      • 变更配置
      • 续费实例
      • 续费API
      • 获取实例变更配置价格
      • 预付费转后付费API
      • 后付费转预付费API
      • 释放实例
      • 创建实例
      • 获取创建实例价格
    • 实例服务
      • 清空实例
      • 重启实例
      • 创建统一读入口
      • 设置集群为热活从地域
      • 修改实例名称
      • 解绑标签
      • 标准版升级集群版API
      • 获取实例详情
      • 从回收站中批量恢复实例
      • 主从切换API
      • 统一读入口负载均衡
      • 获取可用区列表
      • 获取实例规格列表
      • 获取实例列表
      • 获取子网列表
      • 设置集群为热活主地域
      • 集群状态检查
      • 迁移可用区API
      • 绑定标签
      • IP变更API
      • 获取回收站内的实例列表
      • 拨测接口
      • 修改实例域名
      • 释放回收站中的实例
      • 修改维护时间窗口API
    • 备份恢复
      • 查看备份列表API
      • 删除手动备份API
      • 手动备份API
      • 修改备份备注API
      • 获取备份策略API
      • 设置备份策略API
      • 获取备份的URL API
    • 热活实例组
      • 创建热活实例组
      • 实例组禁写
      • 获取热活实例组列表
      • 获取IP白名单列表
      • 移除从集群
      • 获取从角色同步状态
      • 添加IP白名单
      • 前置检查
      • 添加从集群
      • 修改热活实例组名称
      • 热活实例组详情
      • 设置从角色脏读
      • 设置流控规则
      • 变更主角色
      • 释放热活实例组
      • 删除IP白名单
    • 参数管理
      • 获取参数列表
      • 修改参数
    • 参数模版
      • 获取参数模版列表
      • 删除参数模版
      • 获取应用参数模版记录
      • 获取系统参数列表
      • 创建参数模版
      • 参数模版修改参数
      • 参数模版删除参数
      • 应用参数模版
      • 参数模版添加参数
      • 修改参数模版名称
      • 参数模版详情
    • API参考2018版
      • 通用说明
      • API规格
      • 接口说明
      • 附录
      • 错误返回
      • 使用须知
      • API简介
  • 常见问题
    • 安全管控保障
    • 费用相关问题
    • 企业上云评估参考
    • 常见问题总览
    • 性能类问题
    • 常见报错与解决方案
    • Lua脚本使用规范与注意事项
  • 版本说明
    • Redis磁盘型(PegaDB)小版本发布日志
    • Redis内存型小版本发布日志
  • 视频专区
    • 操作指南
  • 产品定价
    • 到期和欠费处理
    • 后付费
      • Redis
      • Memcached
    • 计费说明
      • 变配计费说明
      • 计费方式说明
      • 计费方式变更
      • 续费说明
      • 账单和用量查询
      • 退款说明
    • 预付费
      • Redis
      • Memcached
  • 操作指南
    • Redis操作指南
      • 多用户访问控制
      • 功能概览
      • 创建热活实例组
      • 迁移可用区
      • 导出实例列表
      • 实例状态与影响
      • IP变更
      • 创建多活实例组
      • 控制台介绍
      • Redis 实例生命周期流程
      • 任务管理
        • 任务列表
      • 只读组管理
        • 只读组管理
      • 日志管理
        • 审计日志
        • 运行日志
        • 慢日志
      • 连接指南
        • 查看连接地址
        • 使用单机模式连接
        • 数据分片规则
        • 使用redis-cli连接 Redis 集群
        • Redis实例登录方式
        • 使用 sentinel 模式连接
        • 使用集群模式连接
      • SmartDBA
        • 会话管理
        • 集群拓扑
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启TDE加密
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 设置报警规则
        • 自定义监控项(Redis)
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 实例管理
        • 添加从节点
        • 删除从节点
      • 版本升级
        • 大版本升级
        • 小版本升级
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 标准版升级为集群版
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 备份加密
        • 备份恢复
        • 按时间点恢复数据
        • 备份管理
        • Redis持久化与备份恢复概述
      • 标签管理
        • 创建标签
        • 删除标签
        • 资源账单
        • 根据标签筛选实例
      • 数据迁移
        • 使用 AOF 文件进行迁移
        • Redis数据迁移方案概览
        • 使用 DTS 迁移自建 Redis
      • 参数管理
        • 参数说明
        • 保存为参数模版
        • 查看参数修改历史
        • 禁用危险命令
        • 应用参数模版
        • 设置实例参数
        • 关闭AOF落盘
      • 节点变更
        • 变更只读节点数量
        • 变更节点数量
      • 实例生命周期
        • 清空实例
        • 重启实例
        • 实例回收站
        • 读写分离
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • 性能调优
      • 如何处理Redis集群数据倾斜
      • 排查Redis实例CPU使用率高的问题
      • 常见Latency(时延)事件的处理建议
      • 排查Redis实例流量使用率高的问题
      • 排查Redis实例内存使用率高的问题
    • Redis 容量型(原 PegaDB)操作指南
      • SmartDBA
        • 会话管理
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 查看监控数据(PegaDB)
        • 设置报警规则
        • 自定义监控项(PegaDB)
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 版本升级
        • 小版本升级(PegaDB)
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 数据备份
      • 参数管理
        • 参数配置
      • 节点变更
        • 变更节点数量
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • Memcached操作指南
      • 安全管理
        • 设置IP白名单
        • 安全组
      • 监控报警
        • 设置报警规则
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 修改实例域名
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
  • SDK
    • GO-SDK
      • 异常处理
      • 初始化
      • 主要接口
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

云数据库 SCS

  • 功能发布记录
  • 产品描述
    • 功能概览
    • 灾备方案介绍
    • 产品特性
    • 业务场景
    • 多活实例组介绍
    • 产品架构
    • 可观测性能力介绍
    • 什么是云数据库 Redis
    • 使用须知
    • 热活实例组介绍
    • 云数据库 Redis 版初识与选型
      • Redis 容量型(原 PegaDB)产品介绍
      • 云数据库 Redis 版与自建 Redis 的对比
      • Redis 容量版与 Redis 社区版的特性对比
    • 行业案例
      • 广告行业应用
    • 实例规格
      • Memcached集群版
      • Redis 容量型(原PegaDB)数据库
      • Redis标准版
      • 边缘数据库Redis
      • Redis集群版
  • 重要通知
    • 品牌升级
  • Redis使用限制
    • 主从节点实例与集群的区别
    • 背景信息
    • 其他说明
    • Redis容量型(PegaDB)使用命令限制
    • Redis命令使用限制
  • 快速入门
    • 快速入门流程
    • 连接实例
    • 创建实例
  • 典型实践
    • Redis 事务使用注意事项
    • Redis Pipeline 机制介绍
    • 客户端配置注意事项
    • 消息发布与订阅
  • Memcached使用限制
    • Memcached-使用限制
  • 服务等级协议SLA
    • 百度智能云可信云
    • 云数据库Redis服务条款
    • Redis服务等级协议SLA
  • 最佳实践
    • 消息发布订阅
    • Redis设计规范与最佳实践
    • 避免大 Key 热 Key 实践指南
  • API参考
    • 通用说明
    • API规格
    • 附录
    • 错误返回
    • 使用须知
    • API简介
    • 多活实例组
      • 获取同步状态
      • 多活实例组删除
      • 前置检查
      • 多活实例组列表
      • 创建多活实例组
      • 修改多活实例组名称
      • 多活实例组详情
    • 部署集
      • 创建部署集API
      • 删除部署集API
      • 获取部署集列表API
      • 修改部署集API
    • 日志管理
      • 日志明细API
      • 日志列表API
      • 审计日志开关API
    • 网络安全
      • 域名交换
      • 删除IP白名单
      • 查询IP白名单
      • 修改访问密码
      • 增加IP白名单
    • 安全管理
      • 更新安全组API
      • TDE加密
      • 绑定安全组API
      • 查看安全组API
      • 解绑安全组API
      • 开启或关闭TLS加密API
      • 获取TLS证书API
    • 账号管理
      • 设置权限
      • 修改账号密码
      • 删除账号
      • 账号列表
      • 创建账号
    • 订单服务
      • 取消预付费转后付费API
      • 变更配置
      • 续费实例
      • 续费API
      • 获取实例变更配置价格
      • 预付费转后付费API
      • 后付费转预付费API
      • 释放实例
      • 创建实例
      • 获取创建实例价格
    • 实例服务
      • 清空实例
      • 重启实例
      • 创建统一读入口
      • 设置集群为热活从地域
      • 修改实例名称
      • 解绑标签
      • 标准版升级集群版API
      • 获取实例详情
      • 从回收站中批量恢复实例
      • 主从切换API
      • 统一读入口负载均衡
      • 获取可用区列表
      • 获取实例规格列表
      • 获取实例列表
      • 获取子网列表
      • 设置集群为热活主地域
      • 集群状态检查
      • 迁移可用区API
      • 绑定标签
      • IP变更API
      • 获取回收站内的实例列表
      • 拨测接口
      • 修改实例域名
      • 释放回收站中的实例
      • 修改维护时间窗口API
    • 备份恢复
      • 查看备份列表API
      • 删除手动备份API
      • 手动备份API
      • 修改备份备注API
      • 获取备份策略API
      • 设置备份策略API
      • 获取备份的URL API
    • 热活实例组
      • 创建热活实例组
      • 实例组禁写
      • 获取热活实例组列表
      • 获取IP白名单列表
      • 移除从集群
      • 获取从角色同步状态
      • 添加IP白名单
      • 前置检查
      • 添加从集群
      • 修改热活实例组名称
      • 热活实例组详情
      • 设置从角色脏读
      • 设置流控规则
      • 变更主角色
      • 释放热活实例组
      • 删除IP白名单
    • 参数管理
      • 获取参数列表
      • 修改参数
    • 参数模版
      • 获取参数模版列表
      • 删除参数模版
      • 获取应用参数模版记录
      • 获取系统参数列表
      • 创建参数模版
      • 参数模版修改参数
      • 参数模版删除参数
      • 应用参数模版
      • 参数模版添加参数
      • 修改参数模版名称
      • 参数模版详情
    • API参考2018版
      • 通用说明
      • API规格
      • 接口说明
      • 附录
      • 错误返回
      • 使用须知
      • API简介
  • 常见问题
    • 安全管控保障
    • 费用相关问题
    • 企业上云评估参考
    • 常见问题总览
    • 性能类问题
    • 常见报错与解决方案
    • Lua脚本使用规范与注意事项
  • 版本说明
    • Redis磁盘型(PegaDB)小版本发布日志
    • Redis内存型小版本发布日志
  • 视频专区
    • 操作指南
  • 产品定价
    • 到期和欠费处理
    • 后付费
      • Redis
      • Memcached
    • 计费说明
      • 变配计费说明
      • 计费方式说明
      • 计费方式变更
      • 续费说明
      • 账单和用量查询
      • 退款说明
    • 预付费
      • Redis
      • Memcached
  • 操作指南
    • Redis操作指南
      • 多用户访问控制
      • 功能概览
      • 创建热活实例组
      • 迁移可用区
      • 导出实例列表
      • 实例状态与影响
      • IP变更
      • 创建多活实例组
      • 控制台介绍
      • Redis 实例生命周期流程
      • 任务管理
        • 任务列表
      • 只读组管理
        • 只读组管理
      • 日志管理
        • 审计日志
        • 运行日志
        • 慢日志
      • 连接指南
        • 查看连接地址
        • 使用单机模式连接
        • 数据分片规则
        • 使用redis-cli连接 Redis 集群
        • Redis实例登录方式
        • 使用 sentinel 模式连接
        • 使用集群模式连接
      • SmartDBA
        • 会话管理
        • 集群拓扑
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启TDE加密
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 设置报警规则
        • 自定义监控项(Redis)
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 实例管理
        • 添加从节点
        • 删除从节点
      • 版本升级
        • 大版本升级
        • 小版本升级
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 标准版升级为集群版
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 备份加密
        • 备份恢复
        • 按时间点恢复数据
        • 备份管理
        • Redis持久化与备份恢复概述
      • 标签管理
        • 创建标签
        • 删除标签
        • 资源账单
        • 根据标签筛选实例
      • 数据迁移
        • 使用 AOF 文件进行迁移
        • Redis数据迁移方案概览
        • 使用 DTS 迁移自建 Redis
      • 参数管理
        • 参数说明
        • 保存为参数模版
        • 查看参数修改历史
        • 禁用危险命令
        • 应用参数模版
        • 设置实例参数
        • 关闭AOF落盘
      • 节点变更
        • 变更只读节点数量
        • 变更节点数量
      • 实例生命周期
        • 清空实例
        • 重启实例
        • 实例回收站
        • 读写分离
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • 性能调优
      • 如何处理Redis集群数据倾斜
      • 排查Redis实例CPU使用率高的问题
      • 常见Latency(时延)事件的处理建议
      • 排查Redis实例流量使用率高的问题
      • 排查Redis实例内存使用率高的问题
    • Redis 容量型(原 PegaDB)操作指南
      • SmartDBA
        • 会话管理
        • 热Key分析
        • 大Key分析
        • 日志明细
      • 安全管理
        • TLS加密访问
        • 开启免密访问
        • 设置IP白名单
        • 安全组
      • 账号管理
        • 修改账号密码
        • 修改账号权限
        • 修改账号备注
        • 删除账号
        • 创建账号
      • 监控报警
        • 查看监控数据(PegaDB)
        • 设置报警规则
        • 自定义监控项(PegaDB)
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 版本升级
        • 小版本升级(PegaDB)
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 主从切换
        • 设置公网访问
        • 修改实例端口
        • 修改实例域名
        • 设置维护窗口
      • 备份管理
        • 数据备份
      • 参数管理
        • 参数配置
      • 节点变更
        • 变更节点数量
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
    • Memcached操作指南
      • 安全管理
        • 设置IP白名单
        • 安全组
      • 监控报警
        • 设置报警规则
        • 查看监控数据
      • 计费变更
        • 预付费转后付费
        • 后付费转预付费
      • 变更实例
        • 修改实例名称
        • 变更配置
        • 修改实例域名
      • 实例生命周期
        • 释放实例
        • 创建实例
        • 续费实例
          • 自动续费
          • 手动续费
  • SDK
    • GO-SDK
      • 异常处理
      • 初始化
      • 主要接口
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 云数据库SCS
  • arrow
  • 产品描述
  • arrow
  • 行业案例
  • arrow
  • 广告行业应用
本页目录
  • 一、前言
  • 二、计算广告的业务流程
  • 主要流程:
  • 三、广告行业数据库解决方案的演进
  • 四、百度智能云数据库 Redis 容量型(PegaDB)
  • 4.1 冷热数据分离与交换
  • 传统方案与挑战
  • 百度智能云 PegaDB 解决方案
  • 具体实现
  • 4.2 异地多活
  • 传统方案与挑战
  • 百度智能云 PegaDB 解决方案
  • 具体实现
  • 4.3 Bulkload 快速灌库
  • 传统方案与挑战
  • 百度智能云 PegaDB 解决方案
  • 具体实现
  • 五、方案总结与客户案例

广告行业应用

更新时间:2025-08-22

云数据库Redis容量型(PegaDB)赋能广告投放系统,实现业务场景落地。

一、前言

当今互联网广告已经深入到我们的日常生活中,成为不可或缺的一部分。“百度一下”、“微信搜一搜”、“抖音刷一刷”即可获取到信息。这些平台不仅是我们大家日常获取信息的重要渠道,同时也是众多商家广告投放的关键途径。据 2023 年的数据显示,互联网广告发布收入达到 7190.6 亿元,同比增长 33.4%。

二、计算广告的业务流程

在传统的计算广告业务流程中,广告的展示需要涉及多个参与方,包括用户、广告主、媒体平台、广告交易平台(ADX),以及需求方平台(DSP)等。并且,这一过程通常需要经历十几次的交互才能最终完成广告的展示。

主要流程:

  • 设置广告需求:广告主在 DSP(需求方平台)上设置广告计划、预算、目标等。
  • 发起访问请求:用户在媒体平台上浏览内容或进行搜索等操作。
  • 产生广告请求:当媒体检测到广告位需要展示广告时,会向 ADX(广告交易平台)发起广告请求。
  • 发起曝光竞标请求:ADX 收到媒体的广告请求后,会向多个 DSP 并行发起曝光竞标请求。
  • 曝光参竞请求同步:DSP 将曝光参竞请求同步给广告主,询问广告主的决策。
  • 决策并反馈给 DSP:广告主根据实时数据和策略做出决策,并将决策结果反馈给 DSP。
  • DSP 决定是否出价:DSP 根据广告主的决策和自身估值模型决定是否出价,并给出此次曝光的报价。
  • ADX 返回竞胜结果:ADX 集齐 DSP 报价后进行拍卖,并将竞胜结果返回给 DSP。
  • 广告展示:ADX 按照媒体广告模板进行样式渲染后,将获胜 DSP 的广告返回给用户展示。

image.png

在互联网广告业务中,整个广告展示过程需要控制在100 到 200 毫秒之内完成,以确保用户体验和企业效益的最大化。在这一高效率要求中,数据库的角色至关重要。它不仅影响广告投放的效率,也直接关系到广告展示的性能。其中,对数据库的要求如下:

  • 快速读写能力:广告系统频繁地更新和检索数据,包括用户行为数据、广告表现数据等,广告加载时间对用户体验至关重要,因此需要一个能够支持高速读写操作的数据库。
  • 可扩展性:随着用户量和数据量的增加,数据库需要能够水平和垂直扩展,以处理更多的查询和存储需求。
  • 高可用性:对于广告系统来说,数据库的高可用性至关重要,应有灾难恢复计划和备份机制,以应对数据中心故障等极端情况以确保广告服务的连续性和稳定性。

三、广告行业数据库解决方案的演进

  • 基于业务场景的演进,同时结合业务场景中出现的问题,广告主也在不断升级业务解决方案。在广告行业发展的早期阶段,广告主选择采用高性能的 Redis 内存型数据库,来满足整个业务流程对低延迟的诉求。
  • 然而,随着广告行业规模的增大导致整个广告系统的数据存储成本、维护成本也会增加。为了解决这一问题,许多系统采用了 Redis+MySQL 的架构(下文将详细介绍)。后续随着广告行业更进一步规模的扩大、数据量剧增,Redis+MySQL 的架构方案会出现数据一致性维护成本高的问题,业界开始尝试使用新的方案解决这一问题。
  • 为了解决数据一致性维护成本等一系列的问题,同时基于广告客户的业务场景的需求,百度智能云推出了 PegaDB。PegaDB 采用内存+磁盘存储结合的方式,通过内核自研冷热数据分离与交换、异地多活、Bulkload 等企业级特性来满足现代广告系统对高效率、高可用性和低成本的综合需求。

四、百度智能云数据库 Redis 容量型(PegaDB)

结合广告场景中的具体问题,百度智能云数据库 PegaDB 在产品层、架构层、业务应用层做了全方面的提升,在产品层,通过内存 + 磁盘存储结合的方式,内核自研,冷热数据分离与交换,解决了数据同步一致性的问题;在架构层,采用异地多活的高可用架构,实了跨地域数据灾备与自动化同步;在业务应用层,PegaDB 数据快速灌库 Bulkload 解决了传统数据库只能通过标准协议逐条写入数据,写入速度慢、资源占用影响线上业务的问题,数据导入速度相比传统提升 5 - 10 倍。帮助多家企业提升了业务处理的效率和准确性,降低运营成本。

4.1 冷热数据分离与交换

传统方案与挑战

考虑到兼顾性能与成本,传统模式下广告行业通常采用的是 Redis + MySQL 架构设计,热数据存放在内存型数据库 Redis 中 ,全量存储数据存放在 MySQL 。服务会优先访问 Redis 数据库,获取有效数据即返回数据。如果在 Redis 中没有找到所需数据,系统便会查询 MySQL,获取数据后需要运维人员手工将数据再次同步回 Redis。在海量场景下,这种情况频繁发生,不仅会拖慢系统性能,同时也会增加业务人员的工作量。

百度智能云 PegaDB 解决方案

自研Redis 容量型(PegaDB)产品,基于百度智能云增强型 SSD 云盘构建,将内存与磁盘相结合,内存支持毫秒级在线数据处理,磁盘提供数据持久化能力,实现数据高可靠。同时内核自研的冷热数据分离与交换功能,解决了数据同步一致性的问题。

image.png

百度智能云数据库 Redis 容量型(PegaDB)可对广告位的配置信息以及策略信息等热点数据进行冷热分离。更新 Cache 的逻辑设定为每 10 秒钟一个周期,每周期清空 LRU Cache 中的旧数据(即最长时间未被访问的数据,被视为冷数据),同时更新最新的热点数据,将热点数据加载到缓存中。热点数据在内存中实现高效访问,而非频繁访问的冷数据存储在成本较低的磁盘中。此外,借助 LRU 算法淘汰机制实现冷热数据高效切换,有效避免人工大量处理的问题,节省人工成本。在处理大规模业务数据时,PegaDB 能显著降低成本,单 GB 成本比传统 Redis 解决方案降低超过 70%,同时保持了接近原有 Redis 性能的 80%。

具体实现

  • PegaDB 会维护一个 LRU Cache,用于缓存热数据,通过 LRU 机制淘汰冷数据。
  • 数据读取时,优先访问 LRU Cache 中的 key,若命中则返回 Cache。若未命中则从 DB 读取数据,读取后自动数据同步到 LRU Cache,下次就可以在 LRU Cache 中直接访问到该数据。
  • 通过读操作可将最新的值缓存到 Cache 中,更新 Cache的逻辑一般以 10s 为周期,每 10s 进行一次操作,清空 LRU Cache 的旧数据,更新最新的热数据。时间周期可调整。

image.png

4.2 异地多活

传统方案与挑战

在多地域数据管理中,保持数据的同步性常常着面临诸多挑战。不同地域的数据信息同步需要使用专业的数据复制和同步工具(如 GoldenGate、SharePlex 等)手动写入,并且操作过程中需要专业人员执行、维护。此外,还有一种方法是将数据库的事务日志定期或实时传输到远程地点,然后在远程数据库上重放这些日志来实现数据同步。尽管这种方法可以在不同地域之间同步数据,但整个过程复杂性高、时间周期长。

百度智能云 PegaDB 解决方案

Redis 容量型(PegaDB)自研多活实例组产品。多活实例组由至多 5 个实例组成, 每个实例均可以进行本地域读写。无需专业人员手动写入、维护,每个地域数据由同步组件自动化同步至其他地域,省时省力。多活实例组应用场景如下:

  • 异地多活: 业务需求应用就近访问同时数据整体一致。
  • 数据灾备: 可实现同城灾备、两地三中心灾备及三地灾备等多种数据灾备场景。 百度智能云数据库 Redis 容量型(PegaDB)异地多活同步通道单向可达 5 万 QPS。本地域读写与单实例的延迟基本一致。跨地域间同步,延迟几十毫秒至几百毫秒。不仅通过异地多活的架构设计解决了多地域数据同步一致性的问题。同时,数据自动化同步至其他地域,无需专业数据复制与同步工具手动写入,节省了人力成本。

具体实现

  • 在异地多活集群中,每个实例都会为其配置一个数据同步组件,这个同步组件的叫做 SyncAgent。单个分片内部,只有主节点的 SyncAgent 会工作。SyncAgent 会解析 Redis 生成的 AOF 并将增量的 AOF 同步到目标集群。
  • 在 PegaDB 架构中,引入operator header,用于为生成 AOF 中的每一条命令增加一个编号,这样SyncAgent 就可以记录下 opid 来追踪同步进度了,当 SyncAgent 故障重启后,SyncAgent 会从之前的同步位点继续同步,避免数据丢失。

image.png

4.3 Bulkload 快速灌库

传统方案与挑战

当双十一大促等特殊活动时,客户需要增加广告投放和活动预算,此时需要将大批量数据快速导入数据库。大批量的数据导入占用资源会影响线上业务。按照传统协议的命令,批量写入数据一方面写入速度有限,另一方面写入数据占用资源会使得线上业务访问延迟增加,影响用户体验。

百度智能云 PegaDB 解决方案

数据灌库(Bulkload)依托 RTA 业务场景大数据平台的高并发处理能力和自身存储引擎的数据编排能力,支持大规模的数据通过专属通道直接传入存储引擎,数据导入速度相比传统提升 5-10 倍,并降低对在线业务的影响。 百度智能云数据库Redis容量型(PegaDB)离线灌库方案从数据库层面解决了业务场景批量离线快速灌库、全量数据原子生效、秒级切库和回滚等需求。业务层面,解决了传统数据库只能通过标准协议逐条写入数据,写入速度慢、资源占用影响线上业务的问题。

具体实现

  • 准备原始数据:使用百度智能云 BOS 服务,业务将原始 KV 数据以指定的格式写到文件并上传到 BOS。
  • 生成 SST 文件:借助 BMR 平台,业务向 BMR 平台提交 MR 作业,业务需要指定两个 BOS 地址,分别为原始 KV 数据文件 BOS 地址和生成 SST 文件输出的 BOS 地址。作业的功能是将原始 KV 数据转化为 PegaDB 能够识别和加载的 SST 文件。
  • 注入 SST 文件:业务提交注入任务,注入完成后,新注入的 SST 文件对 PegaDB 可见,但对业务不可见。每一批生成的 SST 文件会对应一个命名空间 namspace,注入完成后,集群会新增一个 namespace,新 namespace 则表示刚注入的数据。(通过 API 可以查询)
  • 数据切换:业务提交切换任务,将数据切换到新注入的 namespace,切换完成后,线上访问的对象为新注入的数据。切换耗时为秒级,不断连不阻写。(若数据不合预期,业务可以提交切换任务 回切到老的 namespace)
  • 数据删除:切换完成后,老数据还会占用磁盘空间,业务可以提交命令空间删除任务,删除耗时为分钟级,任务完成后,磁盘空间会立即腾出,删除过程不断连不阻写。

image.png

五、方案总结与客户案例

PegaDB 通过在产品层、架构层、业务应用层的提升,帮助多家企业提升了业务处理的效率和准确性,显著降低了运营成本。

  • 产品层:PegaDB 通过内存+磁盘存储的系统设计,数据冷热分离自动切换实现了数据高一致性,兼顾存储成本与性能的情况下降低了数据库的运维成本。
  • 架构层:PegaDB 采用异地多活的高可用架构,实现了跨地域数据灾备与同步,业务场景上解决了不同地域之间数据高性能读写的需求。
  • 业务应用层:PegaDB 数据快速灌库 Bulkload 在业务应用层面,显著提升了业务数据写入速度,效率提升 5 倍+。

目前,度秘广告业务已将 PegaDB 作为其广告系统数据库,用于存储广告物料、投放数据和用户画像等。此外,通过 PegaDB 对缓存数据和物料耗时数据的优化,实现了数据之间的高效同步和大规模数据批量导入效率的显著提升,实现运维成本降低 50%+,不同地域业务数据之间高效同步,大规模数据批量导入效率提升 5 倍+。

上一篇
云数据库 Redis 版初识与选型
下一篇
实例规格