请说明 Redis 中订阅/发布(Pub/Sub)机制的基本工作原理,并阐述其核心特性与应用场景。
考察说明
考查对 Redis 发布订阅模式机制、特性和适用场景的理解。
回答思路
- 【回答框架 1】Redis Pub/Sub 是一种消息通信模式,包含发布者、订阅者和频道三个核心角色。发布者通过 PUBLISH 命令向指定频道发送消息,Redis 负责将消息实时推送给所有订阅了该频道的客户端。
- 【回答框架 2】订阅关系由 SUBSCRIBE 和 UNSUBSCRIBE 命令管理,支持按模式订阅(PSUBSCRIBE),如订阅所有匹配特定模式的频道。消息传递是即发即弃,不进行持久化,因此只有在线的订阅者才能收到消息。
- 【回答框架 3】核心特性包括实时性高、支持多对多通信、消息不持久化、无消息堆积能力。因此适合实时通知、聊天室、事件广播等场景,但不适合需要可靠投递或消息追溯的场景。
- 【关键点 1】Redis Pub/Sub 是基于频道的实时消息推送,消息不持久化。
- 【关键点 2】支持普通订阅和模式订阅两种方式。
- 【关键点 3】适用于实时通知、广播场景,不保证消息可靠投递。
- 【易错点 1】误以为 Pub/Sub 会持久化消息,导致离线订阅者丢失消息。
- 【易错点 2】忽视消费速度,若消费者处理慢会造成消息积压在客户端缓冲区。
- 【易错点 3】混淆 Pub/Sub 与 Redis Stream,后者才支持持久化和消费组。