Redis中的分层Pub / Sub和Faye以及推送通知

时间:2013-04-21 10:18:24

标签: redis publish-subscribe faye

我一直在和Redis和Faye一起玩我正在建造的系统。我仍然不确定它们是否是我特定应用的最佳选择。

我的目标

每个用户都可以向频道/主题发布消息,并从他订阅的主题接收消息。主题必须具有层次结构(即主题“B”是主题“A”的子主题,因此我们在主题之间具有“A-> B”关系)。如果用户订阅了子主题,则他只接收来自该主题的消息(他在“A-> B”中订阅“B”并且仅接收“B”中的消息)。如果用户订阅主题,他将收到来自子主题的所有消息(他订阅“A”并接收“B”和“A”的其他子主题的消息。)

用户应使用推送通知(Android / Apple)在其移动设备上接收通知。

我尝试做什么

我尝试通过向层次结构的所有通道发布消息来模拟层次结构。假设我们有这种层次结构:“A-> B-> C”“A-> B-> D”,因此B有两个子主题。

发布到C​​意味着,对于发布者,将消息发送到频道“A”,“B”和“C”。 发布到D意味着,对于发布者,将消息发送到频道“A”,“B”和“D”。

问题

有没有更好的方法可以使用由Redis支持的Faye或Redis? 如果这是最好的方法,它会如何随着越来越多的发布者/订阅者和主题而扩展? 如何通过移动推送API实现流更新?

1 个答案:

答案 0 :(得分:4)

您应该在redis中考虑PSUBSCRIBE命令。

使用PSUBSCRIBE客户端订阅模式而不是单个密钥。

当客户端订阅主题时,您可以轻松地在键命名中对层次结构进行编码(假设您有主题:A:B:C):A:*它将接收关于主题发布的消息:A:B和主题: A:B:C