是Memcached缓存静态文件,如图像,css, js..


Is Memcached caching static files like images, css, js..?

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

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

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

不,它没有,但是在正确配置的服务器上也没有必要这样做:服务器上经常访问的文件将在缓存中已经/在内存缓冲区中,特别是如果它们是静态的,并且您的服务器有足够的内存,将在那里停留相当长的一段时间。尝试使用Memcache为它们提供服务将会增加开销,而不是减少。

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

如果你一直在使用Apache,这里有一个让基于内存的缓存工作的起点:http://httpd.apache.org/docs/2.2/caching.html#inmemory

另外,您可能希望更多地了解在文件上设置缓存头,以便同一用户的多个请求不会意味着更多的文件和网络IO。这可能比显式地在内存中缓存东西节省更多,因为Linux会为您做一些工作。

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

<?php
  file_get_contents("/path/to/image.jpg");
?>

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