APC 简介

PHP官方简介
Alternative PHP Cache (APC)是一个开放自由的PHP opcode缓存。它的目标是提供一个自由、开放和健全的框架用于缓存和优化PHP中间代码。
下载地址: http://pecl.php.net/package/apc

APC有两个主要的配置选项:
第一,多少内存将被分配给APC,ini选项apc.shm_size (integer)控制这个设置,默认值是30M。
第二,每次请求APC是否检查文件修改,ini选项apc.stat控制这个设置,默认值是1,表示每次请求脚本时都检查脚本是否被更新,如果更新则自动重新编译和缓存编译后的内容,但这样做对性能有不利影响。如果设为0则表示不进行检查,从而使性能的到大幅提高。

使用apc.php可以监控apc工作状态。如果apc运行了,缓存完全统计数目将显示缓存的命中率并且清除在最后apc.ttl秒内没有被访问的缓存。这个数字使缓存的最小化的很好配置。如果缓存不断的被填充和清除,这将影响缓存的效果和脚本的性能。减少这个数字的最好方式就是给APC分配足够多的内存。除此之外,可以通过apc.filters缓存更少的脚本。

APC的常用函数
bool   apc_add  (  string $key  ,  mixed $var  [,  int $ttl = 0  ] ) —— 缓存一个变量到数据存储(只在这个变量之前没有被存储的情况)
bool   apc_store  (  string $key  ,  mixed $var  [,  int $ttl = 0  ] ) —— 缓存一个变量到数据存储
bool   apc_clear_cache  ([  string $cache_type  ] ) —— 清除APC缓存
mixed   apc_fetch  (  mixed $key  [,  bool &$success  ] ) ——  从缓存中取出存储的变量
mixed   apc_exists  (  mixed $keys  ) ——  检查是否有一个或者多个APC键名存在
mixed   apc_delete  (  string $key  ) —— 从缓存中删除一个已存储的变量
mixed   apc_delete_file  (  mixed $keys  ) —— 从opcode缓存中删除给定文件的缓存
mixed   apc_compile_file  (  string $filename  [,  bool $atomic = true  ] ) —— 绕过filters的限制,缓存文件
bool   apc_define_constants  (  string $key  ,  array $constants  [,  bool $case_sensitive = true  ] ) —— 定义一组常量
bool   apc_load_constants  (  string $key  [,  bool $case_sensitive = true  ] ) —— 读取一组常量
array   apc_cache_info  ([  string $cache_type  [,  bool $limited = false  ]] ) —— 获取缓存信息

要注意的是 apc_clear_cache ,这个函数不会清除变量的缓存,用apc_delete(变量名),才把变量从缓存中清除掉。apc_clear_cache只会把缓存的opcode文件清除掉。

APC默认通过mmap匿名映射创建共享内存,缓存对象都存放在这块“大型”的内存空间。由APC自行管理该共享内存。
PHP预定义变量,可以使用apc_define_constants()函数。
函数apc_store(),对于系统设置等PHP变量,生命周期是整个应用(从httpd守护进程直到httpd守护进行关闭),使用apc比memcached会更好。毕竟不要经过网络传输协议tcp。
APC不适用于通过函数apc_store()缓存频繁变更的用户数据,会出现一些奇异现象。
APC本身不支持分布式

安装方式:

wget http://pecl.php.net/get/APC-3.1.2.tgz tar zxvf APC-3.1.2.tgz cd APC-3.1.2/ /usr/local/php/bin/phpize ./configure --enable-apc --with-php-config=/usr/bin/php-config make make install

make的时候出现了一点意外

/usr/include/php5/ext/pcre/php_pcre.h:29: fatal error: pcre.h: 没有那个文件或目录
sudo apt-get install libpcre3-dev  安装了这个包就解决了

你可能感兴趣的:(APC 简介)