在我的网站上,我想显示一些数据,这些数据将在数据库中显示一整天。
例如,如果我有一部分像“当天的图片”,那么我将从数据库中选择一张随机图片并将其显示在页面上。
所以我不希望为每个请求执行查询。所以我决定使用memcached来缓存特定时间的查询结果(可能是24小时)..
所有在localhost中工作但我的托管服务提供商没有它们。所以我必须使用一些不同的概念来实现这一点。
php中有没有与memcache等效的内容?
答案 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,我认为您唯一的另一种选择是将其存储在您的数据库中。
这完全取决于您托管的可用选项。
答案 5 :(得分:0)
这取决于您的托管服务提供商支持的内容。
作为最后的手段,您始终可以将内容写入磁盘上的文件,并打开/读取/关闭文件或使用fpassthru()直接输出文件
答案 6 :(得分:0)
您可以使用文件缓存。示例教程http://fclose.net/php-file-cache-sinifi