Memcached 的学习:linux下php开memcached扩展

在PHP中使用Memcached,有两种方式,一种是安装PHP的memcache扩展(实际上还有另外一个memcached扩展,是基于比较流行的libmemcached库封装的),该扩展是用c写的,效率较高,需要在服务器上安装。另外一种则是直接使用客户端的php-memcached-client类库,但是这个我在网上找了半天也没找到一个官方的网站。所以呢,还是装个扩展吧。假设php安装在/home/admin/php目录:

wgethttp://pecl.php.net/get/memcache-2.2.5.tgz 

gzip -d memcache-2.2.5.tgz 

tar xvf memcache-2.2.5.tar 

cd memcache-2.2.5/home/admin/php/bin/phpize

Configuring for: 

   PHP Api Version:         20041225 

   Zend Module Api No:      20060613 

   Zend Extension Api No:   220060519

./configure --enable-memcache

 --with-php-config=/home/admin/php/bin/php-config --with-zlib-dir

Installing shared extensions:     

/home/admin/php/lib/php/extensions/no-debug-non-zts-20060613/

注意到最后一行返回的信息,将下面两行添加到‍  /home/admin/php/lib/php.ini

extension_dir = "/home/admin/php/lib/php/extensions/no-debug-non-zts-20060613/"‍

extension=memcache.so

然后重启web服务器即可。如果安装成功,则通过phpinfo()可以获得该扩展的相关信息:

memcache support

enabled

Active persistent connections 

Version 

2.2.5 

Revision 

$Revision: 1.111 $ 

 

 

Directive

Local Value

Master Value

memcache.allow_failover

1

1

memcache.chunk_size

8192

8192

memcache.default_port

11211

11211

memcache.default_timeout_ms

1000

1000

memcache.hash_function

crc32

crc32

memcache.hash_strategy

standard

standard

memcache.max_failover_attempts

20

20

 

以上参数都可以在php.ini中进行设置。下面是一段官方网站的php测试代码:

<?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) }

posted @ 2013-04-06 01:11  hanks  阅读(121)  评论(0)    收藏  举报