linux下yum安装PHP APC与使用实例

想用一下APC缓存到底效果如何,无奈在windows找不到相应版本的php-apc.dll扩展文件,只好在linux

下安装了,不用源码方式安装,直接yum就行了:
首先要安装apc的依赖包:

 代码如下 复制代码
yum install php-pear php-devel httpd-devel pcre-devel gcc make

然后使用pecl安装apc:

 代码如下 复制代码
pecl install apc

添加apc扩展到配置文件:

 代码如下 复制代码
echo "extension=apc.so" > /etc/php.d/apc.ini

最后记得重启服务器:

 代码如下 复制代码
service httpd restart

 ,然后用PHP的phpinfo()函数可以检测到:

APC缓存函数实例

在APC中我们也可以享受APC带来的缓存大文件上传进度的特性,需要在php.ini中将apc.rfc1867设为1,

并且在表单中加一个隐藏域 APC_UPLOAD_PROGRESS,这个域的值可以随机生成一个hash,以确保唯一。
APC有很多设置,你可以在php.ini中对它设置,如:

 代码如下 复制代码

[APC]
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.max_file_size = 10M
apc.stat=1

我试用了下PHP中常见的APC函数:

 代码如下 复制代码

<?php

/*添加变量到数据存储
bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )
如果key存在了,不会覆盖,但返回false
*/
apc_add('url','http://www.111cn.Net');
 
/*从缓存中取出存储的变量
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 , 否则返回 FALSE
mixed apc_exists ( mixed $keys )
*/
if(apc_exsists('url')){
 echo "这个key真存在";
}else{
 echo "貌似这个key是不存在的";
}
 
/*递增一个储存的数字,成功时返回 key 的当前值, 或者在失败时返回 FALSE
int 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 的当前值, 或者在失败时返回 FALSE
int apc_dec ( string $key [, int $step = 1 [, bool &$success ]] )
*/
$ret = apc_dec('astring', 1, $fail);
var_dump($ret);
var_dump($fail);

另外提供一个很好用的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'));

总结

1,使用Spinlocks锁机制,能够达到最佳性能。
2,APC提供了apc.php,用于监控与管理APC缓存。不要忘记修改管理员名和密码
3,APC默认通过mmap匿名映射创建共享内存,缓存对象都存放在这块”大型”的内存空间。由APC自行管

理该共享内存
4,我们需要通过统计调整apc.shm_size、apc.num_files_hints、apc.user_entries_hint的值。直到最


5,好吧,我承认apc.stat = 0 可以获得更佳的性能。要我做什么都可以接受.
6,PHP预定义常量,可以使用apc_define_constants()函数。不过据APC开发者介绍说pecl hidef性能更

佳,抛异define吧,它是低效的。
7,函数apc_store(),对于系统设置等PHP变量,生命周期是整个应用(从httpd守护进程直到httpd守护进

程关闭),使用APC比Memcached会更好。必竟不要经过网络传输协议tcp。
8,APC不适于通过函数apc_store()缓存频繁变更的用户数据,会出现一些奇异现象。

时间: 2024-10-12 01:59:36

linux下yum安装PHP APC与使用实例的相关文章

linux下yum安装软件的常用配置

开门见山,今天来小谈一下linux下yum安装软件的一些常用的配置,Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器(当然也可以是本地)自动下载RPM包并且安装,可以自动处理依赖性关系(很好的优点),并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. yum能很好实现一下功能: yum install 软件名 软件安装 yum inst

linux下yum安装mongo

废话不多说,直接上干货! 首先查看etc/yum.repos.d/下是否有mongo的文件: 1.若没有,则新建mongodb-org-3.0.repo文件,内容如下保存. [mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=1 2.若有,则跳过步骤1. yum安装开始:

Linux下PHP安装mcrypt扩展模块笔记_php实例

系统环境:centOS6.3 APACHE:httpd-2.4.2 PHP:php-5.3.21 一.安装mcrypt 1.下载Libmcrypt,mhash,mcrypt安装包 复制代码 代码如下: libmcrypt-2.5.8.tar.gz # wget http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459 mhash-0.9.9.tar.gz #

linux yum yellowdog-关于linux下 yum的安装问题,,,配置,,(第一次提问)

问题描述 关于linux下 yum的安装问题,,,配置,,(第一次提问) 我在虚拟机下,装了Redhat,用Rpm命令查找YUM找不到,,就想在网上下载一个安装,,,,,,就大神 解决方案 去sohu或163的镜像站下一个yum的rpm包,然后用rpm -i命令安装上即可 解决方案二: 没有yum安装包,网上下载一个.deb包然后双击安装就ok了~

linux下yum install mod_ssl –y 出错

问题描述 linux下yum install mod_ssl –y 出错 在linux下用yum安装apache [root@lamp5403 www]# yum install mod_ssl –y Cluster | 1.3 kB 00:00 Cluster/primary | 6.0 kB 00:00 Cluster 32/32 ClusterStorage | 1.3 kB 00:00 ClusterStorage/primary | 7.5 kB 00:00 ClusterStorag

CentOS 下yum安装mysql、jdk和tomcat的方法_Linux

0. 创建个人文件夹 # 使用 yum 安装tomcat 和 mysql # 创建文件夹 cd /usr/local mkdir hehe 1. 安装rzsz # 1. 安装rzsz yum list lrzsz* yum install lrzsz -y 2. 安装JDK,path之类的已经自动设置好了 # 2. 安装JDK yum list java* yum install java-1.7.0-openjdk* -y 3. 安装mysql # 3. 安装mysql yum list my

CentOS 6.5下yum安装 MySQL-5.5全过程图文教程_Mysql

在linux安装mysql是一个困难的事情,yum安装一般是安装的mysql5.1,现在经过自己不懈努力终于能用yum安装mysql5.5了.下面通过两种方法给大家介绍CentOS 6.5下yum安装 MySQL-5.5全过程,一起学习吧. 方法一: 具体方法和步骤如下所示: 1.第一步就是看linu是否安装了mysql,经过rpm -qa|grep mysql查看到centos下安装了mysql5.1,那就开始卸载咯 2.接下来就是卸载mysql5.1了,命令:rpm -e mysql-lib

Linux下PHP安装curl扩展支持https例子

问题:   线上运行的lamp服务器,默认yum安装的curl模块只支持http,不支持https.   解决方法:   编译安装curl,重新编译php,使php的curl模块支持https.   具体步骤:   1.下载curl   cd /usr/local/src  #进入安装包存放目录   wget http://curl.haxx.se/download/curl-7.44.0.tar.gz  #下载   2.安装curl   cd /usr/local/src   tar zxvf

Linux下php安装imagick教程详解

说明: php安装目录:/usr/local/php5 php.ini配置文件路径:/usr/local/php5/etc/php.ini Nginx安装目录:/usr/local/nginx Nginx网站根目录:/usr/local/nginx/html 1.安装编译工具 yum install wget make gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch