Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不同的缓存引擎最适合做什么?_Php_Caching - Fatal编程技术网

Php 不同的缓存引擎最适合做什么?

Php 不同的缓存引擎最适合做什么?,php,caching,Php,Caching,尝试使用不同类型的缓存引擎文件APC、Xcache和Memcache。有人知道什么好的资源/链接吗 注意:我使用的是Linux、PHP和mysql,Memcached通常是一种方式,但它有一些“功能”,例如,一旦您将一些数据保存到t cache,它不一定保证以后可用,因为它会动态删除旧缓存以为新缓存让路。这也是相当基本的,您需要使用自己的系统来处理超时和防止级联,但这一切都相当简单。Memcached常见问题解答中有大量的信息,您也可以随意询问,我将发布一些代码示例。Memcached还可以充当

尝试使用不同类型的缓存引擎文件APC、Xcache和Memcache。有人知道什么好的资源/链接吗


注意:我使用的是Linux、PHP和mysql,Memcached通常是一种方式,但它有一些“功能”,例如,一旦您将一些数据保存到t cache,它不一定保证以后可用,因为它会动态删除旧缓存以为新缓存让路。这也是相当基本的,您需要使用自己的系统来处理超时和防止级联,但这一切都相当简单。Memcached常见问题解答中有大量的信息,您也可以随意询问,我将发布一些代码示例。Memcached还可以充当会话处理程序,如果您有很多用户或多个服务器,这一点非常好

否则,如果您只有一台服务器,或者不介意为每台服务器生成单独的缓存,则磁盘缓存是好的。通常比memcached快,因为它没有网络开销(除非您在同一台服务器上使用memcached)。有很多好的磁盘缓存框架,但最好的可能是Pear Cache_Lite和APC


APC还有一个额外的优势,它可以缓存编译后的PHP代码,这可能对高性能网站有所帮助。

PHP中有两种缓存术语

第一个是optcode缓存:

第二个是数据缓存:


一些技术可以跨越国界进入这两个领域,但它们背后的基础很简单。其思想是:在ram中保留尽可能多的数据并进行预编译,因为编译和HD查找是非常昂贵的过程。HD Seek可以找到一个文件来编译/查询数据库以获取数据/查找临时文件,每次这样做都会降低用户体验。

这个问题也可能有帮助:除了本地内存,HD Seek可能是可用的最快的。是的,但与使用RAM的缓存引擎相比,高清搜索速度非常慢,这就是我要表达的观点。@SlappyTheFish哈哈,还有其他选择吗?我通常每个月都会在google reader上(从PHPDeveloper.org和PHP | Architect等正常来源)看到几篇很棒的文章。保持对这样的网站的关注,让我们真正了解了如何有效缓存以及为什么要缓存的概念。@SlappyTheFish你不需要一个memcached网络。您可以将其作为web服务器托管在同一台机器上,这样您就根本不用网络了。此外,您还可以在数据库中创建一个内存表,该表也可以驻留在同一台服务器上(尽管由于上面的SQL层,它仍然比Memcache慢,但仍然比从HD读取快)。你可以把所有的网络都排除在外,只看RAM总是比HD快。