我有一个新闻网站,每天收到大约58,000次点击,共有36,000篇文章。在这36000个独特故事中,30000只获得1个热门(其中大部分是搜索引擎爬虫),只有250个故事获得超过20个印象。缓存任何内容是浪费内存,但这250篇文章。
目前我正在使用MySQL Query Cache和xcache进行数据缓存。该表每5-10分钟更新一次,因此单独的查询缓存不是很有用。如何单独检测经常访问的页面并缓存数据?
答案 0 :(得分:4)
我认为你可以有两种选择:
默认情况下,您不会缓存任何内容。
您可以使用Observer / Observable模式实现在文章视图达到阈值时触发事件,并开始缓存页面。
您在创建时缓存每篇文章
在这两种情况下,您都可以使用cron清除未达到定义阈值的文章。
在任何情况下,您可能需要使用任何启发式方法来尽早确定您的文章需要缓存,并且在任何启发式方法中,您都会有误报,反之亦然。 / p>
这取决于您的内容的阅读方式,如果文章是实时新闻,它可能会很有效率,因为它会迅速产生高流量。
使用这些方法的主要问题是您需要存储额外信息,例如上次访问日期时间及其当前页面浏览量,这可能会导致额外查询。
答案 1 :(得分:1)