Maison > Article > développement back-end > php—Alternative PHP Cache(可选PHP缓存)
简介和安装配置
Alternative PHP Cache (APC) 是一个开放自由的PHP opcode 缓存。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。
该扩展的各个版本安装包都在此处: http://pecl.php.net/package/apc.
该PECL 扩展的 DLL 当前不可用。
注意: 在Windows上,APC需要一个临时目录,并且Web服务器对这个目录可写,APC会检测TMP,TEMP,USERPROFILE这些Windows的环境变量,如果这些都没有,会检查系统文件夹下的WINDOWS目录。
这些函数的行为受 php.ini 中的设置影响。
尽管默认的 APC 设定对于大多数安装已经没问题,但专业人员应考虑调整以下参数。
APC有两个主要的配置选项。第一,多少内存将被分配给APC;第二,每次请求APC是否检查文件修改。两个ini选项分别控制这些设置apc.shm_size 和apc.stat。
一旦服务器运行起来了, apc.php 脚本可以拷贝到一个可以通过浏览器访问到的Web目录中,通过浏览器访问这个脚本会得到APC工作状态的详细分析,如果在PHP中启用了GD扩展,它甚至会显示一些有趣的图表。当然,首要的事情是要确保真的缓存了文件。 如果APC运行了, 缓存完全统计 数目 (在左上角)将显示缓存的命中率并且清除在最后 apc.ttl 秒内没有被访问的缓存。 这个数字使缓存的最小化的很好配置。如果缓存不断的被填充和清除,这将影响缓存的效果和脚本的性能。减少这个数字的最好方式就是给APC分配足够多的内存。除此之外, 可以通过 apc.filters 缓存更少的脚本。
更多关于APC的介绍文章,可参考:可选PHP缓存APC浅析——安装、配置及工作原理
APC函数
apc_add — 缓存一个变量到数据存储
apc_bin_dump — Get a binary dump of the given files and user variables
apc_bin_dumpfile — Output a binary dump of cached files and user variables to a file
apc_bin_load — Load a binary dump into the APC file/user cache
apc_bin_loadfile — Load a binary dump from a file into the APC file/user cache
apc_cache_info — 从APC的数据存储中获取缓存信息
apc_cas — 更新旧值为新值
apc_clear_cache — 清除APC缓存
apc_compile_file — Stores a file in the bytecode cache, bypassing all filters.
apc_dec — 减少一个存储数字
apc_define_constants — Defines a set of constants for retrieval and mass-definition
apc_delete_file — 从字节码中删除文件
apc_delete — 从用户缓存中删除某个变量
apc_exists — 检查APC中是否存在某个或者某些key
apc_fetch — 从缓存中取出存储的变量
apc_inc — 递增一个储存的数字
apc_load_constants — 从缓存中加载一系列常量
apc_sma_info — 取回APC的共享内存分配信息
apc_store — 在数据存储中缓存一个变量
APCIterator类
APCIterator 类使得遍历大容量APC缓存更容易,这是很有帮助的因为它允许同时获取已经定义的每个被锁定实例的条目数,因此它释放的其他活动的缓存锁,而不是阻碍整个缓存以完成获取100(默认)个缓存数据的迭代,在大缓存条目。 此外,使用正则匹配效率更高,因为它被改为C级别的实现。
方法列表
APCIterator::__construct — 构造一个 APCIterator 迭代器对象
APCIterator::current — 获取当前项
APCIterator::getTotalCount — 获取总数
APCIterator::getTotalHits — 获取缓存命中数
APCIterator::getTotalSize — 获取所有缓存的尺寸大小
APCIterator::key — Get iterator key获取迭代器的键
APCIterator::next — 移到下一项
APCIterator::rewind — 倒退迭代器
APCIterator::valid — 检查当前位置是否有效