PHP APC缓存函数使用教程
来源:互联网 发布:mac win10双系统切换 编辑:程序博客网 时间:2024/05/22 14:28
APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。(Linux APC扩展安装)
- 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量CPU时间。因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0)。不过如果这样设置,改运php代码后需要重启WEB服务器。目前使用较多的是指此类缓存。
- 用户数据缓存 缓存由用户在编写PHP代码时用apc_store和apc_fetch函数操作读取、写入的。如果数据量不大的话,可以一试。如果数据量大,使用类似memcache此类的更加专著的内存缓存方案会更好。
在APC中我们也可以享受APC带来的缓存大文件上传进度的特性,需要在php.ini
中将apc.rfc1867
设为1
,并且在表单中加一个隐藏域 APC_UPLOAD_PROGRESS
,这个域的值可以随机生成一个hash,以确保唯一。
APC有很多设置,你可以在php.ini
中对它设置,如:
[APC]apc.enabled = 1apc.shm_segments = 1apc.shm_size = 64apc.max_file_size = 10Mapc.stat=1
常见APC设置:
我试用了下PHP中常见的APC函数:
<?php//www.phpddt.com版权所有,转载注明,谢谢!/*添加变量到数据存储bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )如果key存在了,不会覆盖,但返回false*/apc_add('url','http://www.phpddt.com');/*从缓存中取出存储的变量mixed apc_fetch ( mixed $key [, bool &$success ] )*/var_dump(apc_fetch('url'));/*使用 apc_store() 存储的变量,.key是唯一的,所以 两个值使用同一个名称,原来的将被新的值覆盖bool apc_store ( string $key , mixed $var [, int $ttl = 0 ] )*/apc_store('var','新的变量');/*从用户缓存中删除某个变量mixed apc_delete ( string $key )*/apc_delete('url');/*清楚apc缓存bool apc_clear_cache ([ string $cache_type ] )*/apc_clear_cache('user');/*检查APC中是否存在某个或者某些key,如果Key存在的话返回 TRUE , 否则返回 FALSEmixed apc_exists ( mixed $keys )*/if(apc_exsists('url')){ echo "这个key真存在";}else{ echo "貌似这个key是不存在的";}/*递增一个储存的数字,成功时返回 key 的当前值, 或者在失败时返回 FALSEint apc_inc ( string $key [, int $step = 1 [, bool &$success ]] )*/apc_store('anumber', 42);$ret = apc_inc('anumber', 1, $fail);var_dump($ret);var_dump($fail);/*递减一个存储变量的数字,成功时返回 key 的当前值, 或者在失败时返回 FALSEint apc_dec ( string $key [, int $step = 1 [, bool &$success ]] )*/$ret = apc_dec('astring', 1, $fail);var_dump($ret);var_dump($fail);
更多APC函数,请参考手册:http://www.php.net/manual/zh/ref.apc.php
另外提供一个很好用的APC缓存类:
<?php/********************************************************************************* * APC缓存类,版权(摘自InitPHP框架)***********************************************************************************/class MyApc { /** * Apc缓存-设置缓存 * 设置缓存key,value和缓存时间 * @param string $key KEY值 * @param string $value 值 * @param string $time 缓存时间 */ public function set_cache($key, $value, $time = 0) { if ($time == 0) $time = null; //null情况下永久缓存 return apc_store($key, $value, $time);; } /** * Apc缓存-获取缓存 * 通过KEY获取缓存数据 * @param string $key KEY值 */ public function get_cache($key) { return apc_fetch($key); } /** * Apc缓存-清除一个缓存 * 从memcache中删除一条缓存 * @param string $key KEY值 */ public function clear($key) { return apc_delete($key); } /** * Apc缓存-清空所有缓存 * 不建议使用该功能 * @return */ public function clear_all() { apc_clear_cache('user'); //清除用户缓存 return apc_clear_cache(); //清楚缓存 } /** * 检查APC缓存是否存在 * @param string $key KEY值 */ public function exists($key) { return apc_exists($key); } /** * 字段自增-用于记数 * @param string $key KEY值 * @param int $step 新增的step值 */ public function inc($key, $step) { return apc_inc($key, (int) $step); } /** * 字段自减-用于记数 * @param string $key KEY值 * @param int $step 新增的step值 */ public function dec($key, $step) { return apc_dec($key, (int) $step); } /** * 返回APC缓存信息 */ public function info() { return apc_cache_info(); }}//使用方法如下:$apc = new MyApc();$apc->set_cache('key','test by www.phpddt.com');print_r($apc->get_cache('key'));
原文链接:PHP APC缓存函数使用教程
0 0
- PHP APC缓存函数使用教程
- PHP缓存函数apc
- 使用APC缓存PHP
- PHP APC缓存配置、使用详解
- PHP APC缓存配置、使用详解
- PHP APC缓存配置、使用详解
- php apc cache 缓存
- PHP之APC缓存
- php apc 缓存
- php+apc 缓存
- php apc缓存
- php之apc缓存
- PHP技巧:使用APC缓存优化PHP程序
- PHP APC函数
- php opcode缓存之apc
- PHP OPCode缓存:APC详解
- php 脚本缓存 apc配置
- PHP优化:APC缓存+mysql
- $_SERVER
- Jetty原理研究
- 设计模式-----COMMAND模式
- PostgreSQL学习第九篇--数据类型分类
- 51nod 1449 砝码称重【天平/进制】
- PHP APC缓存函数使用教程
- echarts实现饼图
- const和指针搭配时的作用范围
- iOS开发之app之间的跳转以及跳转到appstore
- 使用tcpdump观查datetime端口的实验记录
- 去掉字符串中的特殊字符
- C++宏定义详解
- jQuery Ajax请求
- 蓝桥杯 历届试题 兰顿蚂蚁