memcached安装+php使用手记

转载 2007年10月07日 02:15:00
原贴:http://www.cublog.cn/u/3052/showart_346566.html

memcached安装+php使用手记
 
 
memcached安装+php使用手记
本文简要介绍一下安装的情况,以及PHP模块memcache使用情况:
提要:
1。安装memcached服务器端
2。安装phpmemcache支持模块
3。使用memcache情况,计数器、数据压缩
4。Memcache内存的更新清理(delete flush)
5。内存超量的测试(set)
1。安装memcached服务器端
memcached
安装说明(北南南北的站)
http://www.linuxsir.org/main/?q=node/184 
注意的是:如果你安装过程中出现错误,请看看是不是有模块没装:
autoconf
zlib (
压缩数据用)

2。安装phpmemcache支持模块
PHP
老家:
http://cn.php.net/manual/zh/ref.memcache.php
(PHP 4.3.3 or newer is required to use the memcache extension.
难道,4.3.3都装上了吗?好像没有吧,用4.4.4好像都要另外装的)

3。使用memcache情况,计数器、数据压缩
 
使用情况一:统计
<?php
//访问统计
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");
if($s=$memcache->get(’a’)) {
    
$s=$s+1;
    
$memcache->set(’a’,$s);
}
else
$memcache->set(’a’,1);
echo ’访问结果为:’.$s;
?>
其实我们可以用increment方法代替上面的做法
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");

if($s=$memcache->increment(’a’,1)) {
    
echo $s;    
}
else
$memcache->set(’a’,1);
?>
 
数据压缩 
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");
$test=(str_repeat(’jetwong’,100000));
$memcache->set(’b’,($test));
?>
使用压缩:
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");
$test=(str_repeat(’jetwong’,100000));
$memcache->set(’b’,($test),MEMCACHE_COMPRESSED);
?>

使用情况说明:
前台比较
目前内存
bytes
总共读取
bytes_read
总共写入
bytes_written
压缩前
700085
700081
416
压缩后
1131
1125
13
可能看到压缩后明显占用内存少了不少
 
4。Memcache内存的更新清理(delete flush)
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");

/*设置值*/
$status = $memcache->getStats();
echo ’设置前内存使用情况’.$status[’bytes’].’<br>’;
echo ’设置后’;
for($i=0;$i<9;$i++) {
    
$memcache->set(’b’.$i,rand(1,99));    
    
echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);       
}

/*查看设置的值*/
$status = $memcache->getStats();
echo ’delete前内存使用情况’.$status[’bytes’].’<br>’;
echo ’<br>开始delete’;
for($i=0;$i<9;$i++) {
    
$memcache->delete(’b’.$i);    
    
echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);
}

/*查看flush使用的情况*/
$status = $memcache->getStats();
echo ’使用flush前内存使用情况’.$status[’bytes’].’<br>’;
echo ’使用flush情况:’;
for($i=0;$i<9;$i++) {
    
$memcache->set(’b’.$i,rand(1,99));    
    
echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);  
}
$memcache->flush();
echo ’flush之后:’;
for($i=0;$i<9;$i++) {        
    
echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);
}
$status = $memcache->getStats();
echo ’flush后内存使用情况’.$status[’bytes’].’<br>’;
?>
 
 
5。内存超量的测试(set)
 我们把内存设为2M
./memcached -d -m 2 -p 11211 -u root
 
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");

//600K左右
$test1str_repeat(’jetlee’,100000);
//600K左右
$test2str_repeat(’jetlee’,100000);
//600K左右
$test3str_repeat(’李连杰’,200000);
//600K左右
$test4str_repeat(’连杰李’,100000);
//200K
$test5file_get_contents(’http://img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);
$test6file_get_contents(’http://img.pconline.com.cn/images/photoblog/1767557/20069/28/1159417108902_mthumb.jpg’);

for($i=1;$i<=6;$i++) {
    
$j=’test’.$i;
    
if($memcache->set($j,$$j)) {
        
echo $j.’->设置成功<br>’;
        
$status = $memcache->getStats();
        
echo ’内存:’.$status[’bytes’].’<br>’;
    }
    
else {
        
echo $j.’->设置失败<br>’;
    }
}
?>
执行结果:
test1->设置成功
内存:600042
test2->设置成功
内存:1200084
test3->设置失败
test4->设置成功
内存:1200084
test5->设置失败
test6->设置失败
 
刚好印证我们的计算,不过20万的repeat为什么会失败,不是太了解,,,,,,
 
总结:
示例:
<?
//设置篇
if($data = $memcache->get(’k’,$v)) {
    
//显示我们的数据
    }
else {
    
$data = get_from_database; //得到数据源
    if(!$memcache->set(’k’,$data), MEMCACHE_COMPRESSED) //开始设置
    log();    //不成功,记录失败信息    
}
?>
-----------OVER-----------

 原文地址 http://ju.qihoo.com/topframe/dingzhen.php?ju=1578152&ml=1578370&u=8a052e5402f8c9d9d3ea5ba45ca77db0&r
 

centOS下PHP使用memcached详细安装过程

网上的文章都没有完整的介绍如何配置centos下php的memcached使用环境,所以这里将自己成功配置的经验写下来。安装memcached首先是安装memcached数据库本身。我们在centos...
  • mevicky
  • mevicky
  • 2015年11月08日 12:53
  • 2667

centos7系统下安装php-memcached拓展及简单使用

说明,按照网上的博客安装时出现了一个最主要的问题,是centos7分支没有php7的-memcached源,需要手动切换到 php7 分支,不然会提示 fatal error : ext / stan...
  • sinat_35861664
  • sinat_35861664
  • 2017年06月01日 16:01
  • 943

MAC下为PHP接入MEMCACHE以及MEMCACHED扩展

折腾了两天终于解决了这个问题! suo'y
  • peigong_dh
  • peigong_dh
  • 2014年06月06日 17:43
  • 2025

CentOS7 编译安装Memcached、设置自启动、php7编译安装Memcached

环境: VM+CentOS7+Linux+Nginx1.9.9+PHP7.1.6+Mysql5.7.17+Redis3.2.9 说明:在安装memcached之前要先安装libeven...
  • luckymama
  • luckymama
  • 2017年06月26日 18:01
  • 582

关于Windows7 下面安装memcached和php的memcache扩展

Php代码与memcached的交互和与mysql的交互原理是一样的,需要安装一个服务器端的memcached,现有的交互处理过程已经封装成了一个php的扩展了;需要在php.ini中,将这个扩展加进...
  • kdchxue
  • kdchxue
  • 2014年10月03日 10:31
  • 2143

centos7 安装memcached以及扩展

安装memcached yum install memcached 启动 memcached /usr/bin/memcached -d -m 64M -u root -l 192.1...
  • hwk_yellow
  • hwk_yellow
  • 2016年11月16日 10:41
  • 509

给php加最新memcached模块

这里说的是memcached服务器客户端和最新的php-memcached模块,不是老旧的memcache模块,模块打好以后可以直接在phpinfo()里面看到memcached模块,老模块叫memc...
  • zhezhebie
  • zhezhebie
  • 2017年04月27日 19:30
  • 390

跟着SY速学Ubuntu系列四:编译安装PHP7下面的memcached扩展

安装一些基本依赖 1、autoconf : 生成配置脚本的工具 (譬如我们使用的./configure文件就需要它来生成) $sudo apt-get install autoconf -y 2、...
  • SxinBoss
  • SxinBoss
  • 2016年06月21日 22:02
  • 1442

php安装对memcached的支持

二、php安装对memcached的支持  php有两个版本的memcached客户端  1.memcached  这个是新版的客户端基于libmemcached,所以必须要安装libmem...
  • happyrabbit456
  • happyrabbit456
  • 2015年03月27日 18:36
  • 1448

Memcached 安装以及安装php扩展

安装扩展和 memcached 我们呢用两个包来安装 首先我们先安装php memcached 扩展 php的扩展memcache,不支持cas,所以我们要装memcached扩展,memc...
  • woshihaiyong168
  • woshihaiyong168
  • 2017年01月09日 15:07
  • 1599
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memcached安装+php使用手记
举报原因:
原因补充:

(最多只允许输入30个字)