安装依赖包(搭建环境)
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)