https://memcached.org/downloads #官网地址
wget http://memcached.org/latest #下载最新版本

下载最新版本之后执行命令:tar -zxvf latest
切换到解压后的memcached目录执行命令:./configure --prefix=/usr/local/memcached #配置

make && make install #编译安装
cd /usr/local/memcached/bin/ #切换到安装目录开启memcached服务
直接运行./memcached
#会报错 can't run as root without the -u switch
解决方法:
-d #后台运行服务
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服
-l 127.0.0.1 #连接的IP地址, 默认是本机
-p 11211 #监听的端口11211
-u root #指定用户root(也可用nobody作为用户)
-m 512 #最大内存使用,单位MB。默认64M
-M 内存耗尽时返回错误,而不是删除
-c 最大同时连接数,默认是102
-f 块大小增长因子,默认是1.2
-n 最小分配空间,key+value+flags默认是4
-h 显示帮助
./memcached -d -m 512 -l 127.0.0.1 -p 11211 -u root #使用root开启memcached
./memcached -d -m 512 -p 11211 -u nobody #使用nobody开启memcached
#############查看开启成功与否####################
ps -aux #显示所有进程
ps -aux | grep memcached #抓取memcached进程
ps -ef | grep memcached #同上
netstat -tunpl | grep 11211 #查看端口占用

telnet命令行操作memcached:
连接:telnet IP port
命令格式:<command> <key> <flags> <exptime> <bytes>\r\n<data block>\r\n
添加:add key 0 0 5 \r\n val
替换:replace key 0 0 5 \r\n val
添加/替换:set key 0 0 5 \r\n val
获取:get key
删除:delete key
自增:incr key val
自减:decr key val
追加:append key 0 0 2 \r\n val
前加:prepend key 0 0 2 \r\n val
状态:stats
内存:stats slabs
清除所有数据:flush_all
版本:version
退出:quit

telnet 127.0.0.1 11211 #提示未找到telnet时,需要安装telnet服务!
#输入Ctrl + ] 然后按Enter键进入telnet
telnet > #如果光标在此行,再按一次Enter键
flush_all #清空所有数据
OK
set num 0 0 2 #设置num值永久存储2字节
10 #num的值为10
STORED #存储成功
set user 0 0 5
admin
STORED
incr num 3 #num的值自增3
13
decr num 1 #num的值自减1
12
append user 0 0 4 #追加user的值4个字节
root #追加的val
STORED
get user #获取user的值
VALUE user 0 9
adminroot
END
append num 0 0 4
root
STORED
get num
VALUE num 0 6
12root
END
prepend user 0 0 3 #user的值前面加3字节生成新值
001 #前加的3字节值
STORED
get user
VALUE user 0 12
001adminroot
END
prepend num 0 0 3
001
STORED
get num
VALUE num 0 9
00112root
END
memcached服务端只安装memcached就可以服务了,但要想成功安装php的memcached扩展,需要安装libmemcached客户端库, 因为该扩展是依赖libmemcached的API。
下载地址:http://libmemcached.org/libMemcached.html
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扩展下载地址:http://pecl.php.net/package/memcached
tar -zxvf memcached-3.0.4.tgz
cd memcached-3.0.4
ls
phpize
./configure --with-php-config=/usr/local/php/bin/php-config #执行报错如下图
#先安装libmemcached成功后再执行下面命令安装
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make
make test #Don't forget to run ‘make test’
make install
要先安装libmemcached,否则报错!

正确安装后会看到安装的memcached.so的位置:
installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
然后切换到php安装目录找到php.ini文件,拉到最底部添加memcached扩展,重启php和nginx,刷新浏览器查看phpinfo是否加载memcached
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so #添加memcached扩展绝对路径
service php-fpm restart #重启php-fpm服务
service nginx restart #重启nginx服务
php操作memcached简单demo测试:
<?php
$m = new Memcached;
$r1 = $m->addServer('127.0.0.1',11211) or die('connect failed’);
var_dump($r1);
$r2 = $m->set('name','admin');
var_dump($r2);
$r3 = $m->get('name');
var_dump($r3);
网友评论