2012-09-01 110 views
0

我正在使用Redis的发布/订阅功能。所以服务器正在发布10个项目,然后客户获得这10个项目。Redis中的“归档”发布/订阅消息

但是,现在有一个新的客户订阅订阅源。我希望他们获得以前的10个项目以及任何新项目。

Redis有办法使用发布和订阅功能来做到这一点吗?饲料历史是否存储在数据库中的任何位置?有没有一个简单的方法来做到这一点?将邮件存储在列表中并让客户端在列表中执行LRANGE my_list 0 10是最好的方法吗?

回答

7

我会保留一个单独的数据存档并将事件添加到两者。新客户可以订阅和排队实时事件,阅读存档,直到它与第一个发布的事件保持同步,然后赶上发布的事件。这样,您不应该在归档和实时事件之间切换时错过任何已发布的事件。

1

我最终为此类目的创建了一个nodejs应用程序。在我的情况下,用户数据发布到我想存储的redis服务器上,我订购了一个nodejs应用程序的redis频道,然后将详细信息保存到数据库中,到目前为止我使用mysql和mongo进行了演示,请告诉我如果这是任何兴趣和虐待一些代码,尝试存储发布历史有一些相似之处...

干杯