【发布时间】:2011-12-26 03:03:59
【问题描述】:
根据this question 的答案,我设法使用 Redis 为我的网站构建了一个通知流。 Web 客户端上的每个“动作”都会为每个感兴趣的用户(关注者、发表评论者等)“记录”。使用轮询每隔几秒就会收到未决通知。
由于最初的要求,我让我的服务器基础架构在获取通知后将其删除(保持 Redis 速度快且内存消耗低很重要)
当我在一台机器上打开多个客户端时,问题就出现了。只有第一个会显示通知,因为它是从 redis 中弹出的。
我考虑了一些解决方案,但到目前为止,我唯一合理的解决方案如下:我没有删除通知,而是将其设置为在几个小时后过期。当然,这无助于解决服务器一遍又一遍地向我发送相同通知的问题(因为它没有被删除),除非我想出基于客户端的 id 或某事,但这已经使情况变得太复杂了.
有什么简单的选择吗?
【问题讨论】:
-
你为什么不使用发布/订阅? (redis.io/topics/pubsub) 你有什么理由需要进行投票吗?
标签: java notifications nosql redis