Memcached
在正式环境的安装+使用日志。
memcached
服务器
虚拟主机/CentOS 7 运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| yum update && yum install -y memcached
yum install cyrus-sasl-devel cyrus-sasl-plain
memcached -d -p 11211 -u memcached -m 229 -c 1024 -P /var/run/memcached/memcached.pid -l 127.0.0.1 systemctl start memcached systemctl enable memcached
netstat -plunt memstat --servers="127.0.0.1"
firewall-cmd --add-port=11211/tcp --permanent firewall-cmd --reload
|
除了通过命名指定 memcached 的启动参数外,最好的方式是将通过配置文件启动:
1 2 3 4 5 6 7 8 9
| vi /etc/sysconfig/memcached
` PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1 -U 0" `
|
关于服务启动选项
-d
是启动一个守护进程
-m
是分配给Memcache使用的内存数量,单位是MB
-u
是运行Memcache的用户
-l
是监听的服务器IP地址,可以有多个地址
-p
是设置Memcache监听的端口,最好是 1024 以上的端口
-c
是最大运行的并发连接数,默认是1024
-P
是设置保存 Memcache 的 pid 文件
Docker 容器运行
1 2 3 4
| docker run --name local-memcached -d -p 11211:11211 \ -e VIRTUAL_HOST=memcached.docker \ -h memcached.docker \ memcached
|
memcached
客户端
CLI 使用 memcached
telnet
终止 telnet:
netcat/nc
memcache-cli
1 2 3 4 5 6 7
| pip install memcache-cli memcache-cli host1:port host2:port
brew upgrade python pip2 install --upgrade pip pip2 install memcache-cli
|
1 2 3 4 5 6 7
| # npm npm install -g memcached-cli # yarn yarn global add memcached-cli
memcached-cli host:port memcached-cli username:password@host:port
|
PHP 使用 memcached
安装 memcached 扩展完整流程
源码安装 memcached 扩展并启用 SASL
/igbinary
/json
完整步骤:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar zxf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --enable-sasl make && make install
wget https://github.com/igbinary/igbinary/releases/download/2.0.5/igbinary-2.0.5.tgz tar -xzvf igbinary-2.0.5.tgz cd igbinary-2.0.5 phpize ./configure make && make install
` ini extension=igbinary.so `
yum install zlib-devel wget http://pecl.php.net/get/memcached-3.0.4.tgz tar zxf memcached-3.0.4.tgz cd memcached-3.0.4 phpize ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl --enable-memcached-json --enable-memcached-json --enable-memcached-igbinary make && make install cp modules/memcached.so /path/to/php_extensions/no-debug-non-zts-XXXXXX/
` ini extension=memcached.so memcached.use_sasl = 1 `
service php-fpm restart
|
代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| $connect= new Memcached; $connect->setOption(Memcached::OPT_COMPRESSION, false); $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); $connect->setOption(Memcached::OPT_TCP_NODELAY, true); $connect->addServer('xxxxxxxx.m.yyyyyyyy.ocs.aliyuncs.com', 11211); $connect->setSaslAuthData('xxxxxxxx', 'bbbbbbbb'); $user = array( "name" => "ocs", "age" => 1, "sex" => "male" ); $expire = 60; $connect->set('your_name',$user,$expire);
|
FAQ
PHP addServer()
“成功”后 getStats()
返回 false
- 检查 memcached 安装配置是否正确
- 检查是否 SASL 连接配置是否正确。
附录:memcached 命令
memcached Cheat Sheet。
参考