通俗易懂地说,Redis Pub/Sub是什么?

18

我应该为什么使用它? 请提供一些非常基本的例子。

1个回答

27

Redis客户端可以 订阅 特定标签(称作频道)下的消息。其他客户端则会向该频道发布 消息。当任何一个客户端向频道发布消息时,Redis都会通知每个订阅了该频道的客户端。

您也可以订阅频道模式,类似于正则表达式匹配。

这有助于使代码更具分布性。它允许代码的不同部分在不同的进程甚至不同的机器上运行,并通过这些队列相互通信。

这一功能来自用户反复请求。这里给出了一个使用示例

新闻网站需要在每次发布新文章时更新首页的缓存副本。

后台缓存处理进程会订阅以“new.article.”开头的所有频道:

redis> PSUBSCRIBE new.article.*

文章发布过程会创建一个新的技术文章(在本例中,该文章ID为“1021”),将文章ID添加到所有技术文章的集合中,并将文章ID发布到“new.article.technology”频道:

redis> MULTI
OK
redis> SET article.technology.1021 "In today's technology news, ..."
QUEUED
redis> SADD article.technology 1021
QUEUED
redis> PUBLISH new.article.technology 1021
QUEUED
redis> EXEC
1. OK
2. (integer) 1
3. (integer) 1
此时,后台缓存工作进程将收到一条消息,并立即知道发布了一篇新的技术文章,随后执行适当的回调函数重新生成主页。 http://redis.io/topics/pubsub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接