我刚刚安装了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