我们想使用PHP+memcache的开发组合
选择一个专门的memcache机器,要么单独准备,要么将它和php放在一起(简略版)。
1.安装
# 安装依赖
# yum -y install libevent-devel
# 下载与安装
# cd /software
# wget http://memcached.org/files/memcached-1.5.20.tar.gz
# tar xvf memcached-1.5.20.tar.gz
# cd memcached-1.5.20
# ./configure --prefix=/usr/local/memcached
# make && make install
# cd /software
# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
# tar xvf libmemcached-1.0.18.tar.gz
# cd libmemcached-1.0.18
# ./configure --prefix=/usr/local/libmemcached && make && make install
如果您的php版本低于7
# cd /software
# wget https://pecl.php.net/get/memcache-2.2.7.tgz
# tar xvf /software/memcache-2.2.7.tgz
# cd /software/memcache-2.2.7
# phpize
# ./configure --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
# make && make install
# cd /usr/local/php/lib/php/extensions/no-debug-zts...(这个文件夹名字不固定)
-rwxr-xr-x 1 root root 556024 Nov 15 15:52 memcache.so
文件夹里存在这个文件,则安装成功
如果是php7+
# cd /software/
我们从github上拉取一个memcache,我无法保证他的版本足够新
# git clone https://github.com/websupport-sk/pecl-memcache
# cd pecl-memcache/
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# cd /usr/local/php/lib/php/extensions/no-debug-zts...(这个文件夹名字不固定)
-rwxr-xr-x 1 root root 556024 Nov 15 15:52 memcache.so
文件夹里存在这个文件,则安装成功
启动
/usr/local/memcached/bin/memcached -u root -d
phpize若报错是因为,php命令没加入环境变量
以php安装路径为/usr/local/php/bin为例。
# echo 'export PATH=$PATH:/usr/local/php/bin' >> /etc/profile
# source /etc/profile
2.连接php与memcache
# vim /usr/local/php/etc/php.ini
搜索Module Settings关键词,在他上面添加一行,
php<7 修改如下:
extension=memcache.so
php7 修改如下:
extension=memcache
# service php-fpm restart
验证
<?php
phpinfo();
?>
页面中搜索memcache,会发现有memcache模块
3.用法
<?php
$mem = new Memcache();
$mem->addServer('Memcache服务器地址',11211);
$mem->set('a','1');
echo $mem->get('a');
4.mem用处
memcached由于它自身没有持久化的功能,在我理解我只能用它进行存储一些临时的,不重要的缓存数据。
比如在负载均衡架构下的session同步。
php中,使用memcache作为session的save handler 一般会使用如下设置:
# vim /usr/local/php/etc/php.ini
搜索session
在session专区里填写
[Session]
session.save_handler = memcache
session.save_path = “memcache服务器IP:11211″