我目前正在我的服务中实现 memcached,但不断出现的建议是我还应该实现 APC 以缓存实际代码。
我浏览了一些教程以及PHP 文档,但我的主要问题是,如何大规模实现它?PHP 文档讨论了存储变量,但没有那么详细。
请原谅我在这方面没有受过教育,但我想知道在实际站点中的哪个位置实现了这一点。我是从字面上缓存所有内容还是只缓存经常使用的部分,例如函数?
谢谢!
APC 既是操作码缓存又是通用数据缓存。后者的工作方式与 memcached 非常相似,而操作码缓存通过缓存已解析的 php 文件来工作,因此不必在每个请求上都解析它们。这通常可以大大加快执行时间。
如您所知,PHP 是一种解释性语言,因此每次请求到达服务器时,它都需要打开所有必需和包含的文件,解析并执行它们。APC 提供的是跳过 require/include 和解析步骤(这些文件仍然是必需的,但存储在内存中,因此访问速度要快得多),因此只需执行脚本。在我们的网站上,我们使用 APC 和 memcached 的组合。APC 可加快上述步骤,memcached 可实现对全局变量(可在一定时间内由多个客户端共享的预先计算的昂贵函数调用等)以及会话变量的快速和分布式存储和访问。这使我们能够拥有多个前端服务器,而不会丢失任何客户端状态,例如登录状态等。
当涉及到您应该缓存的内容时……嗯,这实际上取决于您的应用程序。如果您在某个地方需要多个前端,我会尝试使用 memcached 进行此类缓存和存储,并将 APC 用作操作码缓存。
您不必实现 APC 的操作码缓存功能,只需将它们作为 php 模块启用即可。
APC 缓存大小和其他配置信息在这里。