首页 > 社交类产品如何处理内容的缓存

社交类产品如何处理内容的缓存

像tumblr、微博这类网站如何设计内容的缓存,大部分的用户发表的内容长度不会太长,只有部分用户发表的内容在500到1000字之间。在这种情况下我们该如何选择缓存呢,有什么优化手段么?


这个问题我也研究过一段时间,以下建议仅供参考:
1.缓存的选用:最快的缓存肯定是离CPU最近的地方,第三方缓存由于IO的原因都是有性能瓶颈的,所以我会选择内存缓存,因为快!当然除此之外你选MEMCACHE,REDIS这种东西都可以,只不过我的方案里面暂时不考虑。
2.大型的社区网站应用服务器肯定是分布式的,所以本地缓存肯定会有数据不同步的情况出现,我提供两种方案来解决:
消息的通知,当应用服务器中任意一个的缓存数据被更改时(例如被点赞,增加回复数等),需要通知其他的实例服务器变更数据,通知方案也有两种,一种是多点对多点,实例服务器HTTP相互通知的方式,另一种是建立一台专门负责消息转发的服务器,所有的应用服务器都通过SOCKET连接的方式与该服务器进行通讯,这种方式要更快更稳定,但是成本也会高得多。这两种方案各有利弊,我采用的是后者。
缓存数据的定时重载:为确保数据的正确性,缓存的数据必须定时重载,而且缓存的数据还要设置过期。一般这种缓存我是以时间来做缓存标示的,例如缓存里只有最近一天或者一周的用户发布数据,超过这个时间的数据就不会走缓存而直接走数据库查询。

补充一下,做了几年的社区服务器了,越来越倾向于用非关系型数据库来做社区内容的数据结构,已经准备用MONGODB重构原来的数据库结构

【热门文章】
【热门文章】