在Laymen的术语中,什么是Redis Pub / Sub?

时间:2011-04-26 05:22:28

标签: redis publish-subscribe

我为什么要用它? 给出一些非常基本的例子。

1 个答案:

答案 0 :(得分:26)

redis客户端订阅以接收标记有特定标记的消息,称为 channel 。其他客户发布到此频道。每次任何人向频道发布消息时,Redis都会通知每个订阅客户端。

您还可以订阅频道模式 - 考虑正则表达式匹配。

这有助于使代码 可分发 。它允许一些代码在不同的进程中运行,甚至可能在不同的机器上运行,并通过这些队列相互通信。

此功能来自repeated user requests。给出here的示例用例:

  

新闻相关网站需要更新   每个主页的缓存副本   发表新文章的时间。

     

后台缓存工作进程   订阅所有开始的频道   与'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