你的位置:首页 > Linux系统

memcache服务端和客户端的安装及使用

2010-09-01 浏览:(6955) Linux系统 评论(0)

memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于memcached通常只是当作快取系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新memcached内的资料。memcached具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/客户端包的下载地址是:http://www.danga.com/memcached/apis.bml

下载和安装

memcache服务端安装

wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz

wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

tar zxvf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure --prefix=/usr
make & make install
tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/usr/local/memcache/ --with-libevent=/usr
make & make install

安装完成,启动

/usr/local/memcache/bin/memcached -d -m 512 -u apache -p 11211 -c 25600

-d 以守护进程方式启动

-m 512 是指分配512M内存

-u apache 是用apache用户启动

-p 11211 使用11211端口

-c 25600 最大的迸发连接数

PHP扩展(也就是客户端),也就是让PHP支持memcache 

下载安装

wget http://pecl.php.net/get/memcache-2.2.6.tgz

tar zxvf memcache-2.2.6.tgz
cd memcache-2.2.6
phpize
./configure --with-php-config=/usr/bin/php-config --with-zlib-dir=/usr/ --enable-memcache
make & make install

完成之后在/etc/php.d里面创建一个memcache.ini里面加入extension=memcache.so

重启apache

service httpd restart

memcache状态web界面接口,复制memcache.php到网站的根目录,如

cp memcache.php /www/

修改用户密码,如下

vi memcache.php

define('ADMIN_USERNAME','test');     // Admin Username

define('ADMIN_PASSWORD','password');    // Admin Password 

然后用IE浏览器打开 http://192.168.1.168/memcache.php,即可查看相关状态信息

打开phpinfo检查,如

http://192.168.1.168/phpinfo.php

能看如下图的信息,表示安装成功,也就是你的PHP已经支持memcache了

在你的PHP程序里,就可以使用memcache这个缓存数据库了 

PHP测试实例

< ?php
//连接
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211); 
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br />";

//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";

//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";

//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";

//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";

//关闭连接
$mem->close();
?>

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。