memcached - php 安装,Memcached - PHP 安装&使用

本文档详细介绍了如何下载并安装Memcached服务端,以及如何在PHP环境中安装Memcache模块。包括下载地址、安装命令、配置过程、测试代码以及一些关键函数的使用示例。通过这些步骤,你可以成功地在服务器上部署和使用Memcached进行数据缓存。
摘要由CSDN通过智能技术生成

下载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

安装PHP模块

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/

修改php.ini

extension_dir = "./"

修改为:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"

添加一行:

extension=memcache.so

安装完毕,测试:

PHP代码

$memcache=newMemcache;//创建一个memcache对象

$memcache->connect(‘localhost’, 11211)ordie(“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代码

//访问统计

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“Could not connect”);

if($s=$memcache->get(’a’)) {

$s=$s+1;

$memcache->set(’a’,$s);

}

else

$memcache->set(’a’,1);

echo’访问结果为:’.$s;

?>

等效

PHP代码

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“Could not connect”);

if($s=$memcache->increment(’a’,1)) {

echo$s;

}

else

$memcache->set(’a’,1);

?>

数据压缩

PHP代码

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“Could not connect”);

$test=(str_repeat(’jetwong’,100000));

$memcache->set(’b’,($test));

?>

使用压缩:

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“Could not connect”);

$test=(str_repeat(’jetwong’,100000));

$memcache->set(’b’,($test),MEMCACHE_COMPRESSED);

?>

内存的更新清理

PHP代码

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“Could not connect”);

/*设置值*/

$status=$memcache->getStats();

echo’设置前内存使用情况’.$status[’bytes’].’
’;

echo’设置后’;

for($i=0;$i<9;$i++) {

$memcache->set(’b’.$i,rand(1,99));

echo’
’.$i.’->’.$memcache->get(’b’.$i);

}

/*查看设置的值*/

$status=$memcache->getStats();

echo’delete前内存使用情况’.$status[’bytes’].’
’;

echo’
开始delete’;

for($i=0;$i<9;$i++) {

$memcache->delete(’b’.$i);

echo’
’.$i.’->’.$memcache->get(’b’.$i);

}

/*查看flush使用的情况*/

$status=$memcache->getStats();

echo’使用flush前内存使用情况’.$status[’bytes’].’
’;

echo’使用flush情况:’;

for($i=0;$i<9;$i++) {

$memcache->set(’b’.$i,rand(1,99));

echo’
’.$i.’->’.$memcache->get(’b’.$i);

}

$memcache->flush();

echo’flush之后:’;

for($i=0;$i<9;$i++) {

echo’
’.$i.’->’.$memcache->get(’b’.$i);

}

$status=$memcache->getStats();

echo’flush后内存使用情况’.$status[’bytes’].’
’;

?>

内存超量测试

PHP代码

$memcache=newMemcache;

$memcache->connect(’localhost’, 11211)ordie(“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.’->设置成功
’;

$status=$memcache->getStats();

echo’内存:’.$status[’bytes’].’
’;

}

else{

echo$j.’->设置失败
’;

}

}

?>

总结 PHP代码

//设置篇

if($data=$memcache->get(’k’,$v)) {

//显示我们的数据

}

else{

$data= get_from_database;//得到数据源

if(!$memcache->set(’k’,$data), MEMCACHE_COMPRESSED)//开始设置

log();    //不成功,记录失败信息

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值