我检查了 Redis 发布/订阅功能,乍一看它看起来非常适合形成 Twitter 提要之类的东西。但是,我试图在谷歌上搜索 Redis 发布/订阅和新闻源,但我几乎找不到任何关于此的示例或用例。如果 Redis 实际上对此不利,那么缺点是什么?
首先,Redis 发布/订阅不是一个数据存储,而只是一个数据流通道。
例如(按时间顺序
)- 创建名为
news:feed
的通道 - 用户 A 加入
news:feed
- 用户 B 发布到
news:feed
此方案工作正常。但以下情况并非如此:
- 创建名为
news:feed
的通道 - 用户 B 发布到
news:feed
- 用户 A 加入
news:feed
在这种情况下,用户 A 将永远不会收到用户 B 在其 (A) 加入之前发布的消息。
如果要使用发布/订阅实现新闻源,则必须创建多个频道(至少与用户一样多)。下面是一个简单的Twitter克隆的实现:http://redis.io/topics/twitter-clone