我有一个新闻网站,每天有大约58,000次点击,有36,000篇文章。在这36000个独特的故事中,只有30000个获得了1次点击(其中大部分是搜索引擎爬虫),只有30000个故事获得了超过20次的印象。除了这250篇文章之外,缓存任何东西都是浪费内存。
目前,我正在使用MySQL查询缓存和xcache进行数据缓存。该表每5-10分钟更新一次,因此仅查询缓存没有多大用处。如何单独检测频繁访问的页面并缓存数据?
发布于 2011-01-30 03:43:56
我认为你可以从两个方面入手:
默认情况下,
您可以使用观察者/可观察模式实现一种在文章的视图达到阈值时触发事件的方法,并在creation上开始缓存每篇文章的page.
在这两种情况下,您都可以使用cron清除未达到您定义的阈值的文章。
在任何情况下,您都可能需要使用任何启发式方法来足够早地确定您的文章将需要缓存,并且与任何启发式方法一样,您将有误报,反之亦然。
这将取决于你的内容是如何阅读的,如果文章是实时新闻,它可能会很有效,因为它会很快产生高流量。
这些方法的主要问题是,您将需要存储额外的信息,如上次访问的日期、时间及其当前页面视图,这可能会导致额外的查询。
发布于 2011-01-29 22:39:04
您只能缓存新文章(比如说最近添加的文章)。我建议你看看memcached和Redis --它们都是非常有用的、简单的、同时功能强大的缓存引擎。
https://stackoverflow.com/questions/4836614
复制相似问题