Memcached - PHP 安装&使用
2012-01-26 05:16
507 查看
Memcached - PHP 安装&使用
下载Memcached:http://danga.com/memcached/download.bml
安装:
下载安装libevent,已安装可跳过:
下载地址:http://www.monkey.org/~provos/libevent/
Memcached For PHP Module下载地址:
http://pecl.php.net/package/memcache http://cn.php.net/manual/zh/ref.memcache.php
安装Memcached服务端
root@tonyvicky:# tar vxzf memcached-1.1.12.tar.gz root@tonyvicky:# cd memcached-1.1.12 root@tonyvicky:# ./configure --prefix=/usr/local/memcached root@tonyvicky:# make root@tonyvicky:# make install |
root@tonyvicky:# cd /usr/local/memcached/bin root@tonyvicky:# ./memcached -d -m 50 -p 11211 -u root |
root@tonyvicky:# tar vxzf memcache-1.5.tgz root@tonyvicky:# cd memcache-1.5 root@tonyvicky:# /usr/local/php/bin/phpize root@tonyvicky:# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir root@tonyvicky:# make root@tonyvicky:# make install |
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/ |
extension_dir = "./" |
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/" |
extension=memcache.so |
PHP代码
<?php
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
Memcache的内定Function
connect(ip, port)
set(key, value) 数据压缩:set(key, value, MEMCACHE_COMPRESSED)
get(key)
increment,
同set(好像多了个计数功能,没试过)
getStats() 返回当前内存占用情况(return array) print_r($memcached->getStats());
flush 清空内存占用.
代码范例(来自chinaunix):
PHP代码
<?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;
?>
等效
PHP代码
<?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代码
<?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);
?>
内存的更新清理
PHP代码
<?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>’;
?>
内存超量测试
PHP代码
<?php
$memcache = new Memcache;
$memcache->connect(’localhost’, 11211) or die ("Could not connect");
//600K左右
$test1= str_repeat(’jetlee’,100000);
//600K左右
$test2= str_repeat(’jetlee’,100000);
//600K左右
$test3= str_repeat(’李连杰’,200000);
//600K左右
$test4= str_repeat(’连杰李’,100000);
//200K
$test5= file_get_contents(’http://img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);
$test6= file_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>’;
}
}
?>
总结
PHP代码
<?
//设置篇
if($data = $memcache->get(’k’,$v)) {
//显示我们的数据
}
else {
$data = get_from_database; //得到数据源
if(!$memcache->set(’k’,$data), MEMCACHE_COMPRESSED) //开始设置
log(); //不成功,记录失败信息
}
?>
相关文章推荐
- Memcached - PHP 安装&使用
- Memcached - PHP 安装&使用
- Ubuntu下安装Wine&WineQQ+Phpstorm+wps+svn+vim(计划任的使用)+flashplayer+curl扩展
- memcached&php扩展安装
- 安装使用php&nbsp;zlib扩展实现页面gzip…
- PHP5.5在windows 安装使用 memcached 服务端的方法以及 php_memcache.dll 下载
- 搭建memcached使用:/usr/bin/phpize 安装memcached扩展的时候报错
- memcached、php-memcache安装及使用
- 在Ubuntu16.1.&16.04&14.04使用PPA安装PHP7.1&7.0
- php 使用memcached 安装配置
- centos7 安装memcached和php-memcached扩展以及memcached使用方式
- php安装使用memcached
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- PHP5.5在windows 安装使用 memcached 服务端的方法以及 php_memcache.dll 下载
- PHP高性能分布式内存对象缓存系统扩展Memcached的安装及使用
- PHP5.5在windows安装使用memcached服务端的方法
- 跟着SY速学Ubuntu系列三:Ubuntu16编译安装Memcached&&简单使用
- ubuntu下安装memcached与php扩展测试使用
- centOS下PHP使用memcached详细安装过程
- MongoDB定义&安装&使用&php扩展