我为什么要用它? 给出一些非常基本的例子。
答案 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
此时,后台缓存 工作进程将收到一条消息 并立刻知道一个新的 技术文章发表, 随后执行适当的 回调重新生成主页。