Memcached 安装与配置

安装依赖包(搭建环境)

yum install -y libevent-devel

安装memcached

wget http://memcached.org/latest
tar  -zxvf memcached-1.4.33.tar.gz
cd  memcached-1.4.33
./configure  --prefix=/usr/local/memcached --enable-64bit
(指定路径,64位使能)
make && make install

开启服务:
/usr/local/memcached/bin/memcached  -h          #查看帮助
/usr/local/memcached/bin/memcached  -u  www  -d
-u   #指定以www用户执行
-d   #后台运行

安装php关于memcached扩展的依赖包: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扩展:php-memcached-php7

    unzip php-memcached-php7.zip 
    cd php-memcache-php7
    phpize 
    ./configure --with-php-config=/usr/local/php7/bin/php-config 
	
	make && make install 
	(返回一个安装库路径,加载到php的扩展中即可)

phpize位置:/usr/local/php7/bin(专门解压php扩展库的)

如果没有phpize,命令把/usr/local/php7/bin添加到/etc/profile里vi /etc/profileexport PATH = $PATH:…:/usr/local/php7/bin 立即生效:source /etc/pprfile

–with-php-config:依赖的php的配置

-with-libmemcached-dir:依赖的memcached的扩展库的目录

修改配置

vim /usr/local/php/etc/php.ini
extension = /usr/local/php7/lib/php/extension/no-debug-non-zts-20151012/memcache.so
#添加一行路径
service php-fpm restart
#访问地址,查看phpinfo();

使用

#启动
/usr/local/memcached/bin/memcached -d -m 256 -p 11211 -u www -l 127.0.0.1 -P /tmp/memcached.pid
参数 说明
-d 以守护程序(daemon)方式运行
-u www 指定用户,如果当前为 www,需要使用此参数指定用户
-P /tmp/memcached.pid 保存PID到指定文件
-m 256 数据内存数量,不包含memcached本身占用,单位为 MB
-l 127.0.0.1 监听的 IP 地址,本机可以不设置此参数
-c 1024 最大并发连接数,默认1024,最好是200
#check.php
<?php
$m = new Memcache;             									//创建一个memcache对象
$m->connect('127.0.0.1', 11211) or die ("Could not connect"); 	//连接Memcached服务器
$m->set('name', '张三');        								   //设置一个变量到内存中,名称是key 值是test
$value = $m->get('name');   			 						//从内存中取出key的值
echo $value;

创建新对象:new memcached();

添加服务器:addServer();

添加键值对:set();

根据键获取值:get();

删除键值对:delete();

增加指定数值:increment();

减去指定数值:decrement();

清空所有缓存:flush();

扩展:用memcached保存session

vi /usr/local/php7/etc/php.ini
session.save_hander=files 注掉改为: 		session.save_hander=memcached
session.save_path = ’127.0.0.1:11211’

Error

#### 报错
clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   if (opt_servers == false)
                      ^~~~~
clients/memflush.cc:51:24: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
     if (opt_servers == false)

### 处理
if (!opt_servers)
Licensed under 京ICP备17003353号-3