我已经在几个网站上阅读了几个教程以及关于这个主题的StackOverFlow的一些问题,但我仍然无法找到我的问题的明确答案.
我想知道APC Cache如何管理/保存用户特定的数据(将在php代码中使用的变量,这是用户特定的.换句话说,其他用户不应该看到的数据.)以及它是如何实现的保存所有用户都可以看到的公开数据?
我只是想了解它是如何工作的.我知道APC"保存"或保留在内存中所需的和包含的文件......但是如果那些包含的文件在代码中具有用户特定的变量呢?如果让我们在/account/user_profile.php中说我使用了几个变量,比如$ firstname $ lastname $ address等,那些变量会保存在内存中吗?例如,如果John X在更新或保存缓存时登录,那么APC将始终记住John为$ firstname,X为$ lastname?如果另一个用户访问同一页面,我希望他看到其用户个人资料详细信息,而不是John的.
我知道这可能已经讨论过了,但我需要一个明确的答案.
谢谢!
您对APC缓存有错误的理解.它是一个字节码缓存,这意味着它将存储PHP脚本的字节码.这将在下次再次从脚本中创建字节码时保存PHP解释器,因为它已经存在.
注意:自PHP 5.5以来,它附带了自己的OPCode Cache Core Extension,名为Opcache.用于操作码缓存的APC的使用被非正式弃用.有关详细信息和选项,请咨询您的系统管理员或Opdesk,无论扩展名称如何,此答案中概述的一般原则仍然适用.
在正常的PHP执行中,您的脚本代码将被采用并编译为字节代码.这个字节码然后由php处理器执行.这是JIT编译器的常见模式.
因此,如果没有字节码缓存,则需要在每个请求上编译字节码.使用字节码缓存,此步骤只需在所有请求中执行一次.下一次字节码已经在缓存中并且可以直接执行.
这与变量内容完全无关,它只是代码.