Redis支持Pub/Sub的模式来传递消息,主要涉及以下命令:
SUBSCRIBE channel [channel ...] -- 订阅一个或多个频道
UNSUBSCRIBE [channel [channel ...]] -- 退订一个或多个给定的频道,如果没有指定则退订所有
PUBLISH channel message -- 向指定频道发送消息
PSUBSCRIBE pattern [pattern ...] -- 订阅与给定模式匹配的频道
PUNSUBSCRIBE [pattern [pattern ...]] --退订与给定模式匹配的频道,如果没有指定则退订所有
Redis订阅模式的缺点:
1. 对于旧版redis,如果一个客户端订阅了某个频道,但它读取的速度却不够快,那么不断积压的消息就会使得redis输出缓冲区的体积变大,从而导致redis的速度变慢,甚至崩溃。
新版的redis不会出现以上问题,因为它会自动断开不符合client-output-buffer-limit配置要求的连接
2. 网络系统在操作时可能遇上断线的情况,而断线产生的错误通常会使得网络连接中的一端进行重连。如果客户端在执行订阅的过程中断线,那么客户端将丢失在断线期间发送的所有消息。