Memcached的安装使用
参考教程:【千峰教育】
环境:CentOS 6.8
一、简介:
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
· 协议简单
· 基于libevent的事件处理
· 内置内存存储方式
· memcached不互相通信的分布式
二、安装依赖包
yum install -y libevent-devel
三、安装memcached
1、下载:
wget http://memcached.org/files/memcached-1.5.12.tar.gz
2、解压:
tar -zxvf memcached-1.5.12.tar.gz
3、配置、安装
cd memcached-1.5.12 ./configure --prefix=/usr/local/memcached --enable-64bit make && make install
4、开启服务:
cd /usr/local/memcached/bin
./memcached -u www -d
参数说明:
-p:指定端口,默认为11211
-m:指定内存,根据自己硬件设置
-u:指定用户,不能是root
-d:后台运行
四、安装libmemcached
(libmemcached 是一个memcached的客户端库)
1、下载:
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
2、解压:
tar -zxvf libmemcached-1.0.18.tar.gz
3、配置、安装
cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached make && make install
五、安装php-memcached扩展
(教程上是unzip php-memcached-php7.zip,但是我没找到,使用的下面的扩展)
1、下载:
wget https://pecl.php.net/get/memcached-3.1.3.tgz
2、解压:
tar -zxvf memcached-3.1.3.tgz
3、配置、安装
cd memcached-3.1.3 phpize ./configure --with-php-config=/usr/local/php7/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/ make && make install
注意事项:
第一:phpize ,这个命令在php的安装目录下的bin目录下,即/usr/local/php7/bin/,专门解压php扩展库的。
如果报错,提示没有这个命令,就把这个命令的位置添加到环境变量里:
vim /etc/profile
export PATH=$PATH:/usr/local/php7/bin
source /etc/profile
第二:使用phpize报错,提示Autoconf版本低,需要升级,没有生成configure文件,影响下一步编译。
第三:使用./configure时报错提示没有文件,检查上一步的phpize命令是否报错。
4、在php的配置文件php.ini中增加Memcached扩展。
上一步执行成功时,最后会显示扩展路径:
示例:
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/
复制这个路径,
vim /usr/local/php7/etc/php.ini
增加一行:
extension="usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/memcached.so"
注意:每个环境的路径不太一样。
5、重启php:
service php-fpm restart
六、使用memcached
创建新对象:new Memcached
添加服务器:addServer
添加键值对:set
根据键获取值:get
删除键值对:delete
增加指定数值:increment
减去指定数值:decrement
清空所有缓存:flush
七、设置session使用Memcached保存
vim /usr/local/php7/etc/php.ini
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
八、代码示例
$m = new Memcached(); $m->addServer('127.0.0.1',11211); $m->set('name','zhang san'); $name = $m->get('name'); echo $name;
===============================================
使用phpize时报错:
configure.ac:3: error: Autoconf version 2.68 or higher is required
解决:
(1)查询当前版本:
命令:rpm -qf /usr/bin/autoconf
autoconf-2.63-5.1.el6.noarch
(2)卸载当前版本:
命令: rpm -e --nodeps autoconf-2.63
(3)安装新版本:
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar -zxvf autoconf-2.69.tar.gz
cd autoconf-2.69
mkdir -p /usr/local/autoconf
./configure --prefix=/usr/local/autoconf/
make && make install
(4)查看版本:
/usr/local/autoconf/bin/autoconf -V
=======================================================