Redis 核心使用场景揭秘!百度智能云 PegaDB 实践

Redis 是高性能内存数据库,支持多种数据结构和丰富的功能,几乎可以覆盖所有需要快速读写和灵活数据管理的场景。以下列举了 Redis 几个经典的使用场景和百度智能云 PegaDB 的实践,仅供参考

1、缓存

场景

在双十一抢购时,每秒几万人点开同一个商品页面。如果每次用户的请求需求,都需要都去调取数据库信息(像每次查订单都打电话问厨房),数据库会崩溃。

Redis 解决方案
  • 提前把商品信息(价格、库存)存到 Redis 中。
  • 用户查询时直接从 Redis 拿数据,又快又稳。

2、 计数器

场景

例如广告投放统计整个广告的点击量,如果用数据库记录订单号,可能两个人拿到同一个号码(并发冲突)或者可能会碰到恶意刷量的情况。

Redis 解决方案
  • INCR 命令生成订单号,根据订单号判定,避免重复。
  • 统计广告的投放量、阅读量、点赞数也是同样原理。

3、消息队列

场景

异步解耦系统,缓解流量洪峰。比如在淘宝下单后,商家要根据订单实时通知仓库、发短信、扣库存……如果所有步骤都卡着等,会影响业务收入。

Redis 解决方案
  • 把任务拆成“小纸条”(消息)扔进 Redis 队列。
  • 仓库、短信服务各自领取任务处理(类似于像快递员分拣包裹)。

4、排行榜

​​​​​​​场景

例如广告投放时查看流量榜,全网的页面浏览量排名每秒都在发生变化,如何快速地实施统计数据并做到精准的数据更新,成为难点。

Redis 解决方案

  • Redis 自动排序,查全国高流量页面前100名只要几毫秒就可以完成。像类似 LOL 全球排行榜单一样。

上面列举的几个核心场景里,其中提到了“数据的实时性”,其实,在日常的数据库场景使用中,数据的实时性对业务决策至关重要。

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

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

  • 异地多活: 业务需求应用就近访问同时数据整体一致。

  • 数据灾备: 可实现同城灾备、两地三中心灾备及三地灾备等多种数据灾备场景。

下面为大家分享 PegaDB 的实践: PegaDB异地多活同步通道单向可达 5 万 QPS。本地域读写与单实例的延迟基本一致。跨地域间同步,延迟几十毫秒至几百毫秒。不仅通过异地多活的架构设计解决了多地域数据同步一致性的问题。同时,数据自动化同步至其他地域,无需专业数据复制与同步工具手动写入,节省了人力成本。

具体实现

  • 在异地多活集群中,每个实例都会为其配置一个数据同步组件,这个同步组件的叫做 SyncAgent。单个分片内部,只有主节点的 SyncAgent 会工作。SyncAgent 会解析 Redis 生成的 AOF 并将增量的 AOF 同步到目标集群。

  • PegaDB 架构中,引入operator header,用于为生成 AOF 中的每一条命令增加一个编号,这样SyncAgent 就可以记录下 opid 来追踪同步进度了,当 SyncAgent 故障重启后,SyncAgent 会从之前的同步位点继续同步,避免数据丢失。



欢迎大家了解 pegaDB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值