面试题答案
一键面试适用场景
- 实时消息推送:例如在社交平台中,当用户发布一条动态时,需要实时推送给其粉丝。通过PUBLISH发布该动态消息到特定频道,粉丝的客户端通过SUBSCRIBE订阅该频道,即可实时接收到新动态。
- 系统通知:在一个大型电商系统中,当有重要系统公告、促销活动通知时,可通过PUBLISH发布到通知频道,各个客户端SUBSCRIBE此频道,及时获取通知。
- 微服务间轻量级通信:假设一个由多个微服务组成的系统,其中一个商品微服务更新了商品库存,通过PUBLISH发布库存更新消息到特定频道,相关的订单微服务、统计微服务等SUBSCRIBE此频道,从而做出相应处理。
优势
- 简单高效:Redis的PUBLISH与SUBSCRIBE命令使用简单,只需极少的代码即可实现消息的发布和订阅,无需像一些复杂的消息队列那样进行大量的配置。在对性能要求极高,架构相对简单的场景下,能快速搭建消息传递机制。
- 实时性强:Redis是基于内存的,消息的发布和订阅几乎是瞬间完成,能满足实时性要求高的场景,如实时聊天、实时监控等。而像数据库轮询等传统消息传递方式,实时性较差。
- 轻量级:相较于专业的消息队列如RabbitMQ、Kafka等,Redis的消息发布订阅功能相对轻量级,资源消耗小。对于一些小型项目或者对资源有限制的项目,使用Redis的PUBLISH与SUBSCRIBE命令更合适,无需引入复杂的消息队列中间件。