在我的网站上,我正在使用Apache,MySQL和Memcached。
我已经实施了一个系统,用户可以在他的feed
页面上看到他朋友的某些更新。虽然它有效,it's slow
。当然如此!每次加载页面时,都会一次又一次地从MySQL中获取数据。所以我正在敲打我的脑袋,想着用Memcached正确实现缓存这些数据。我想到了以下几点:
在第二和第三,还会有另一个问题。我不相信Memcache的对象限制为1mb可以存储这么多数据。然后,种族条件存在一些风险。如果2个朋友同时发布更新,导致用户的Feed缓存更新两次怎么办? (如果Memcached进程是原子的,那么这不会有问题,但是,我认为这不是正确的方法。)
您对此有何看法?什么是实现我想要的最佳方法?
答案 0 :(得分:0)
让您登录的客户注册所有朋友频道的听众。如果有人在他的时间轴上添加了一些内容,请检查是否有注册的侦听器。如果是这样,发布到那些客户端(使用队列,推送,等等)。