我可以在php中使用哪些可用的缓存方法?
缓存HTML输出
缓存一些变量
实现多个缓存方法会很棒,所以我需要它们,所有可用的(我目前使用文件进行缓存,还有其他任何想法?)
答案 0 :(得分:3)
答案 1 :(得分:0)
由于每次PHP运行都是从页面请求开始,所以在调用之间没有任何内容会持续存在,这使得缓存无法实现。
嗯,这是基本观点。当然,有一些方法可以实现缓存,一些包和扩展程序(如Zend Extensions和APC)。但是,您应该仔细查看它是否真正提高了性能。其他方法,如memcache(用于DB结果),或从PHP切换到例如Java通常会产生更好的结果。
您可以在$ _SESSION中存储变量,但不应该在那里保留较大的HTML。
请检查您实际上要做的事情。 “字节码缓存”(即节省PHP解析时间)需要由PHP运行时可执行文件完成。对于缓存数据库(SQL)请求/回复对,有memcache。缓存HTML输出can be done,但通常不是一个好主意。
答案 2 :(得分:0)
如果您正在使用框架,那么大多数都带有某种形式的缓存机制,您可以使用它,例如Zend Framework的Zend_Cache。 如果您没有使用框架,则可以使用APC或Memcache作为Pelle ten Cate。正确的使用方法确实取决于您的情况,您的网站或应用程序是否运行在服务器以上,并且缓存中的信息是否需要在这些服务器之间共享? (如果是的话那么像memcache这样的东西就是你的答案,或者如果你有勇气的话,可能是数据库或分布式NoSQL解决方案)。 如果您的代码只在一台服务器上运行,您可以尝试一些简单的操作,例如序列化您的变量,然后将它们写入磁盘,然后在每次请求后查看文件是否存在,如果存在,打开它并将字符串反序列化为你需要的变量。 如果通常需要很长时间来生成变量,这只是值得的, (例如,比在磁盘上打开,读取,反序列化文件的时间更长)
对于HTML缓存,您通常会使用像Varnish或Squid这样的代理为您做到最多,但我意识到这可能不是您的选择。 如果不是那么你可以使用我上面提到的写入磁盘方法,并将大块的HTML保存到文件中。查看ob_start及其朋友的PHP手册。