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
0
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) }
浙公网安备 33010602011771号