仅缓存PHP中经常使用的数据

时间:2011-01-29 11:32:18

标签: php mysql caching xcache

我有一个新闻网站,每天收到大约58,000次点击,共有36,000篇文章。在这36000个独特故事中,30000只获得1个热门(其中大部分是搜索引擎爬虫),只有250个故事获得超过20个印象。缓存任何内容是浪费内存,但这250篇文章。

目前我正在使用MySQL Query Cache和xcache进行数据缓存。该表每5-10分钟更新一次,因此单独的查询缓存不是很有用。如何单独检测经常访问的页面并缓存数据?

2 个答案:

答案 0 :(得分:4)

我认为你可以有两种选择:

  1. 默认情况下,您不会缓存任何内容。

    您可以使用Observer / Observable模式实现在文章视图达到阈值时触发事件,并开始缓存页面。

  2. 您在创建时缓存每篇文章

  3. 在这两种情况下,您都可以使用cron清除未达到定义阈值的文章。

    在任何情况下,您可能需要使用任何启发式方法来尽早确定您的文章需要缓存,并且在任何启发式方法中,您都会有误报,反之亦然。 / p>

    这取决于您的内容的阅读方式,如果文章是实时新闻,它可能会很有效率,因为它会迅速产生高流量。

    使用这些方法的主要问题是您需要存储额外信息,例如上次访问日期时间及其当前页面浏览量,这可能会导致额外查询。

答案 1 :(得分:1)

您只能缓存文章(假设最近添加的文章)。我建议看看memcachedRedis - 它们都非常有用,简单,同时也是强大的缓存引擎。