Chinaunix首页 | 论坛 | 博客
  • 博客访问: 252319
  • 博文数量: 61
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-14 15:18
文章分类

全部博文(61)

文章存档

2011年(4)

2010年(5)

2009年(10)

2008年(42)

我的朋友

分类:

2011-02-12 14:26:40

环境: CentOS 5.4 PHP 5.2.11 lighttpd 1.4

一 下载并安装 libevent memcached

 yum install -y libevent.x86_64 libevent-devel.x86_64
 wget
 tar -xzf memcached-1.4.5.tar.gz
 cd memcached-1.4.5
 ./configure --prefix=/usr/local/memcached
 make && make install
 
 二, 启动memcached
 /usr/local/memcached/bin/memcached -d -m 256 -p 11211 -u lighttpd

 三、PHP的memcached 客户端
有两种方法可以使 PHP 作为 memcached 客户端,调用 memcached 的服务进行对象存取操作。

1)PHP的memcache扩展模块,下载并安装
 wget
 cd memcache-3.0.5
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
make && make install
Installing shared extensions:     /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/

edit /usr/local/php/lib/php.ini
加入:
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension=memcache.so

通过phpinfo(),检查是否有memcache.

下面是一段官方网站的php测试代码:

$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get('key');
echo "Data from the cache:\n";
var_dump($get_result);
?>

运行后输出如下:
Server's version: 1.2.6
Store data in the cache (data will expire in 10 seconds)
Data from the cache: object(stdClass)#3 (2)
{ ["str_attr"]=>  string(4) "test" ["int_attr"]=>  int(123) }


2)可以避开扩展、重新编译所带来的麻烦,那就是直接使用 php-memcached-client。虽然效率会比扩展库稍差一些,但问题不大。
     应用示例
首先 下载 memcached-client.php,在下载了 memcached-client.php 之后,就可以通过这个文件中的类“memcached”对 memcached 服务进行操作了。
其实代码调用非常简单,主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:
add ($key, $val, $exp = 0)
  往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;

参考文档:http://hi.baidu.com/tuozhuai/blog/item/40acc3c4c64838a28226acab.html



阅读(3318) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-05 16:50:33

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com