Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。在搭建负载均衡平台的时候,为Session的会话维持,可以引用Memcached来存储Session数据,以此提高服务可用性!
编译安装Memcached
1、安装依赖
yum install -y libevent libevent-devel cyrus-sasl cyrus-sasl-devel
libevent
是一套跨平台的事件处理接口的封装。Memcached使用libevent来进行网络并发连接的处理,能够在很大并发的情况下,仍保持快速的响应能力。
2、下载Memcached并解压
#下载最新版本
wget http://memcached.org/latest
#解压memcached,后面的版本请根据下载的版本填充x
tar -zxvf memcached-1.x.x.tar.gz
3、创建用户和用户组并编译安装
groupadd memcached
useradd -s /sbin/nologin -g memcached memcached
cd memcached-1.x.x
./configure --prefix=/usr/local/memcached
make
make install
4、配置
此处为后期操作Memcached方便将其使用软连接建立到系统环境变量中
ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
#查看memcached信息
memcached -h | head -1
5、安装Memcached扩展
Memcached服务端安装完成之后,再需要安装memcached扩展libmemcached
,PHP程序才正常操作memcached。该拓展下载官网:https://launchpad.net/libmemcached
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install
PHP安装memcached模块
1、下载Memcached模块
此处可以使用pecl安装,若报错说memcache版本不一致,则需要自行找支持您PHP版本的memcache来安装。官网下载地址:https://pecl.php.net/package/memcached,Github下载地址:https://github.com/php-memcached-dev/php-memcached
wget http://pecl.php.net/get/memcached-3.1.5.tgz
2、解压并编译安装
tar -zxvf memcached-3.1.5.tgz
cd memcached-3.1.5
/usr/local/php/73/bin/phpize
./configure --enable-memcached --with-php-config=/usr/local/php/73/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-sasl
make && make install
3、查看是否安装
ll /usr/local/php/73/lib/php/extensions/no-debug-non-zts-20180731/
# 含有memcached.so文件即成功
4、编辑php.ini文件开启拓展
vim /usr/local/php/73/lib/php.ini
#修改或添加如下内容:
extension=memcached
5、重启PHP服务并查看拓展
service php-fpm73 reload
service php-fpm73 restart
php73 -m
或打开phpinfo页面查看,出现如图所示模块即安装成功
Memcached开机自启
本方法是将启动命令加入rc.local文件来定义开机自启,其Memcached启动相关指令如下:
启动参数说明:
-d
选项是启动一个守护进程,-m
是分配给Memcached使用的内存数量,单位是MB,默认64MB -M
在内存耗尽时返回错误(而不是删除项目)-u
是运行Memcached的用户,如果当前为root 的话,需要使用此参数指定用户。-l
是监听的服务器IP地址,默认为所有网卡。-p
是设置Memcached的TCP监听的端口,最好是1024以上的端口-c
选项是最大运行的并发连接数,默认是1024-P
是设置保存Memcached的pid文件
1、编辑rc.local文件
vim /etc/rc.d/rc.local
2、添加启动命令并设置文件权限
# IP及端口定义和内存分配可自己根据自己机器情况来定义
/usr/local/memcached/bin/memcached -d -l 192.168.17.130 -p 11211 -m 512 -c 1024 -u memcached -P /tmp/memcached.pid
chmod +x /etc/rc.d/rc.local
PHP开启session共享
配置php.ini
vim /usr/local/php/73/lib/php.ini
#添加如下内容
session.save_handler= memcached
session.save_path= "192.168.17.130:11211"