在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务。
PHP Memcache 扩展安装
PHP Memcache 扩展包下载地址:http://pecl.php.net/package/memcache,你可以下载最新稳定包(stable)。
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar -zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
注意:/usr/local/php/ 为php的安装路径,需要根据你安装的实际目录调整。
安装成功后会显示你的memcache.so扩展的位置,比如我的:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
最后我们需要把这个扩展添加到php中,打开你的php.ini文件在最后添加以下内容:
[Memcache] extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" extension = memcache.so
添加完后 重新启动php,我使用的是nginx+php-fpm进程所以命令如下:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
如果是apache的使用以下命令:
/usr/local/apache2/bin/apachectl restart
检查安装结果
/usr/local/php/bin/php -m | grep memcache
安装成功会输出:memcache。
或者通过浏览器访问 phpinfo() 函数来查看.
PHP 连接 Memcached
<?php
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
?>
更多 PHP 操作 Memcached 请参阅: http://php.net/manual/zh/book.memcache.php
Centos 下使用 yum 命令快速安装 Memcached 与 php-memcached:
rpm qa|grep memcached //首先检查memcache是否已经安装完成
yum install memcached //(提示你是否确认安装输入y)检查完成后执行安装命令
yum install php-memcached //安装php的memcache的扩展
systemctl start httpd //开启apache
systemctl start memcached //开启memcached
setenforce 0
安装完成后可以使用 php 的 phpinfo(); 函数检查 memcache 是否安装。
PHP之memcache扩展和memcached扩展
在PHP里,如果想连接memcache服务器,需要安装扩展。PHP提供了两个扩展,一个叫memcache,一个叫memcached。下面是两者的区别:
memcached扩展的发布时间比memcache晚
memcached扩展需要依赖libmemcached,libmemcached是memcache提供的官方客户端,因此memcached扩展是libmemcached的二次封装。而memcache扩展不需依赖libmemcached
memcached扩展不支持windows系统,只支持linux。而memcache扩展两者都支持
memcahced扩展比memcache扩展拥有更多的优点,如低内存、线程安全、支持session、提供更多的方法等
使用方法上的区别
//memcache扩展
$m = new Memcache();
$m->connect('localhost', 11211);
$m->set('key', 'value', MEMCACHE_COMPRESSED, 60);
//memcached扩展
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('key', 'value', 60);
在项目中建议使用memcached扩展。