Redis 发布与订阅
相关命令
通过PUBSUB
命令,列出目前被订阅的所有频道
// PUBSUB CHANNELS [pattern]
PUBSUB CHANNELS [.NET*]
通过PUBLISH
命令,将一条消息发送至给定频道,比如:
// PUBLISH channel message
PUBLISH '.NET' 'ASP.NET'
PUBLISH '.NET' 'ASP.NET Core'
通过SUBSCRIBE
命令,订阅给定的一个或多个频道:
// SUBSCRIBE channel [channel...]
SUBSCRIBE '.NET'
通过UNSUBSCRIBE
命令退订指定的频道:
// UNSUBSCRIBE channel [channel...]
UNSUBSCRIBE '.NET'
// 退订所有的频道
UNSUBSCRIBE
注意事项
- 发布订阅模式不存储数据(没有持久化),消费者下线、Redis宕机、消息堆积等都会导致消息的丢失。
- 当生产者发布消息时,Redis 先把消息写到对应消费者的缓冲区中,当消费者的速度,跟不上生产者时,就会导致数据积压的情况发生。缓冲区是有大小限制的(可配置),如果超出限制,redis 会强制把对应消费都踢下线。