在PHP中有任何memcached等效?

时间:2011-02-21 09:15:40

标签: php caching memcached

在我的网站上,我想显示一些数据,这些数据将在数据库中显示一整天。

例如,如果我有一部分像“当天的图片”,那么我将从数据库中选择一张随机图片并将其显示在页面上。

所以我不希望为每个请求执行查询。所以我决定使用memcached来缓存特定时间的查询结果(可能是24小时)..

所有在localhost中工作但我的托管服务提供商没有它们。所以我必须使用一些不同的概念来实现这一点。

php中有没有与memcache等效的内容?

7 个答案:

答案 0 :(得分:3)

您可以使用文件进行缓存,并filemtime()调用以查看是否需要重新选择选择。或者包含选择的数据库记录及其生成日期。

对于这项任务,这两种方法都可以很好地运行 - memcache听起来有点过分(尽管在可用时显然很方便)

答案 1 :(得分:2)

虽然APC缓存(http://au2.php.net/apc)不适用于此,但如果您的托管服务提供商启用了它,则可能对您有用。

答案 2 :(得分:1)

您应该将其另存为文件。缓存不是存储,您应该始终期望,即使超时尚未到期,缓存也会被清除。

但是,您不需要将文件保存为(例如)“pictoreOfTheDay.jpg”。无论如何你必须将图片保存在某个地方,所以你只需要保存一个文件名即可。

答案 3 :(得分:0)

PHP有一个memcache扩展名:http://php.net/manual/en/book.memcache.php

答案 4 :(得分:0)

如果您在共享主机上并且无法安装memcached,我认为您唯一的另一种选择是将其存储在您的数据库中。

  • 将缓存的结果保存为平面文件,这会相对较慢。
  • 您可以配置您的mysql服务器以运行内存数据库以获得更好的性能。
  • 运行sqlite实例。

这完全取决于您托管的可用选项。

答案 5 :(得分:0)

这取决于您的托管服务提供商支持的内容。

作为最后的手段,您始终可以将内容写入磁盘上的文件,并打开/读取/关闭文件或使用fpassthru()直接输出文件

答案 6 :(得分:0)

您可以使用文件缓存。示例教程http://fclose.net/php-file-cache-sinifi