0

我刚刚安装了 Memcached,我想知道 Memcached 是否可以在我的服务器上缓存图像、js、css、字体文件等,或者它只适用于脚本语言?

它是自动缓存还是必须配置?

如果没有,我如何使用 PHP 缓存静态文件(就像变量值一样?)?

4

4 回答 4

4

不,它没有,但是在正确配置的服务器上执行此操作的需求也为零:服务器上经常访问的文件将已经在缓存中/在内存缓冲区中,特别是如果它们是静态的并且您的服务器有足够的记忆,会在那里停留相当长的一段时间。尝试使用 Memcache 为它们提供服务将产生更多的开销,而不是更少。

于 2013-04-06T19:23:36.733 回答
3

您最好的选择可能是使用像nginx这样的缓存层来处理 HTTP 流量(作为 apache 的代理或作为主要的 HTTP 服务器)。如果你只是想要一个代理,Varnish 也是一个不错的选择。

如果您在使用 Apache 时遇到问题,这里是让基于内存的缓存工作的起点:http ://httpd.apache.org/docs/2.2/caching.html#inmemory

此外,您可能希望更多地研究在文件上设置缓存标头,以便同一用户的多个请求不会意味着更多的文件和网络 IO。这可能比在内存中显式缓存内容节省更多,因为 Linux 将为您完成其中的一些工作。

于 2013-04-06T19:35:06.977 回答
2

将其转换为字符串并将其保存在 memcache 中

<?php
  file_get_contents("/path/to/image.jpg");
?>
于 2013-04-06T19:23:12.690 回答
2

http://php.net/manual/en/book.memcached.php有文档。您可以保存二进制数据,但可以有效地存储生成的复杂数据,例如 DB-results

于 2013-04-06T19:25:52.417 回答