我们在学些rabbitmq中知道一个概念那就是发布和订阅,当然我们在解析eurak注册中心的时候也说过发布订阅。其实redis也提供了相关的功能。所以说redis还是非常强大的存在。咋今天主要就是翻译一下《redis in action》书中写的关于redis发布和订阅这块的内容。首先redis的发布订阅是基于信道的,也就是说发布和订阅其实都是基于信道,发布者将消息发送到信道,然后订阅者监听信道,获取得到消息。这块书中建议我们将发布订阅模型理解为广播站,监听一个信道的所有订阅者都可以获得消息。在这段内容中,我们将研究发布订阅的一些操作命令,了解了这块的内容,之后第八章做一些事情了。Subcriribe:订阅指定的信道
Unsubscribe:接触对已经订阅的信道,如果没有给定信道,那么就会解除所有链接的信道
Publish:将消息发送到指定的信道上
Psubscribe:根据正则表达式订阅信道上的消息
Punsubscribe:解除给定正则表达式的信道
Redis中的发布订阅是可以非常有用的,但是要主要的点也有两个,这两块有可能导致信息缺失。第一点:在老版本的reids中,如果我们的redis中链接都正常,但是client-output-buffer-limit(客户端链接缓存限制)参数过大会导致redis奔溃,操作系统就会停止redis进程。但是在新版本已经不存在这个问题了,但是新版本会让信道连接不可用,主要的情况就是发布的消息太多,超过了上限的情况。这块将在第八章详细说明!第二点:数据传输的可靠性,在网络链接中,不可避免的会产生连接中断的情况,典型的就是链接中断之后的重试,然后在重试的过程中信息已经发送到这个信道上了。那么即便您重新链接上了这个信道,那么也是无法收到消息的。当然如果您打算使用redis做发布和订阅这件事,那您可能不可避免的会丢失一些消息。