码迷,mamicode.com
首页 > 其他好文 > 详细

redis发布与订阅

时间:2017-07-23 22:30:38      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:发送   目的   知识   兴趣   bar   模式   发布   lan   color   

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。Redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将消息类型称为通道(channel)。当发布者通过publish命令向redis server发送特定类型的消息时。订阅该消息类型的全部client都会收到此消息。这里消息的传递是多对多的。一个client可以订阅多个 channel,也可以向多个channel发送消息。

Redis中的发布订阅

Redis实现完整的发布订阅范式,就是说任何一台redis服务器,启动后都可以当做发布订阅服务器。

普通订阅

127.0.0.1:6379> SUBSCRIBE bar

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "bar"

3) (integer) 1

新起个发布者client,发送消息。格式:publish channelName Message。

127.0.0.1:6379> publish bar val

(integer) 1

 

 

缺陷:

所有pub/sub很有用,但是redis的实现有这么几个问题:

1,如果一个客户端订阅了频道,但自己读取消息的速度却不够快的话,那么不断积压的消息会使redis输出缓冲区的体积变得越来越大,这可能使得redis本身的速度变慢,甚至直接崩溃。

2,这和数据传输可靠性有关,如果在订阅方断线,那么他将会丢失所有在短线期间发布者发布的消息,这个让绝不多数人都很失望吧。

redis发布与订阅

标签:发送   目的   知识   兴趣   bar   模式   发布   lan   color   

原文地址:http://www.cnblogs.com/xiaolang8762400/p/7226035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!