Redis23:订阅与发布
订阅与发布:redis的PubSub
订阅:
subscribe 具体频道
发布:
publish 频道 内容 可以将具体内容发送到对应频道,同时订阅该频道的所有客户端都能接收到该消息。
订阅多个:
subscribe 具体频道* 可以订阅具体名称开头的多个频道,即使后续增加了某个新的频道只要在这个范围内也可以收到新的消息。
可以利用这个来完成redis的消息多播功能。
在应用中,用getMessage获取返回的消息时,必须先休眠一会,因为发布和订阅都有网络延迟,马上执行得不到结果,常采用轮询加休眠的方式来获取结果。
redis的pubsub也有缺点,那就是如果某个消费者突然崩溃,那么这段时间多播的消息对于该消费者来说就是永久错过了,如果redis宕机,那么所有的消息都会直接被丢弃,redis5中引入了一个持久化消息队列stream来解决这个问题。