memcached安装:
1:yum install -y epel-release
2:yum install -y libevent memcached libmemcached
3:启动/etc/init.d/memcached start
4:ps aux|grep memcached
5:memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
6:相关的参数在/etc/init.d/memcached和/etc/sysconfig/memcached中定义 只有在/etc/sysconfig/memcached中定义才生效
memcached启动时参数:
1:-d选项是启动一个守护进程
2:m是分配给memcached使用的内存数量,单位是MB
3:-u是运行memcached的用户,如果当前为root的话,需要使用此参数指定用户
4:-l是监听的服务器ip地址
5:-p是设置memcached监听的端口,默认是11211
6:-c是最大运行的并发连接数,默认是1024
7:-P是设置保存memcached的PID文件
查看memcached运行状态:
1:memcached-tool 127.0.0.1:11211 stats 还有一个display
2:或者echo stats |nc 127.0.0.1 11211 需要安装nc工具 yum install -y nc
3:若安装libmemcached后,可以使用命令memstat --servers=127.0.0.1:11211查看memcached服务状态
cmd_get :总的写入量 get_hits:总的命中量 如果命中率低于80%,说明你的memcached不太好
memcached基本操作:
memcached命令行:
1:telnet 127.0.0.1 11211
2:set key2 0 60 3:key2 是键名 0是标记 60是过期时间,单位是秒 3是大小,单位字节
abc
STORED
get key2 :查询key2
VALUE key2 0 3
abc
END
memcached语法规则:
<command name><key><flags><exptime><bytes>\r\n<data block>\r\n
注:\r\n在Windows下是enter键
a)<command name>可以是“set”“add”“replace”.
“set”表示按照相应的<key>存储该数据,没有的时候增加,有的覆盖。
“add”表示按照相应的<key>添加该数据,但是如果该<key>已经存在则会操作失败。
“replace”表示按照相应的<key>替换数据,但是如果该<key>不存在则会操作失败。
b)<key>客户端需要保存数据的key.
c)<flags>是一个16位的无符号整数(以十进制方式表示)。该标志将和需要存储的数据一起存储,并在客户端get数据时返回,客户可以将此标志用作特殊用途,此标志对服务器来说是不透明的。
d)<exptime>过期的时间。若为0表示存储的数据永远不过期(但可被服务器算法:LRU替换)。如果非0(Unix时间或者距离此时的秒数),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。
e)<bytes>需要存储的字节数,当用户希望存储空数据时<bytes>可以为0。
f)<data block>需要存储的内容,输入完成后,最后客户端需要加上“\r\n”(直接点击enter)作为"命令头”的结束标志
PHP连接memcached
1:先安装php的memcached扩展
wget http://www.lishiming.net/data/p_w_upload/forum/memcache-2.2.3.tgz
tar zxf memcache-2.2.3.tgz
cd memcache-2.2.3
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
安装完后会有这样类似的提示:
installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-200906267/
把这个记住,然后修改php.ini,把extension_dir="./"修改为extension_dir=/usr/local/servers/php/lib/php/extensions/no-debug-non-zts-200906267"
并添加一行:extension=memcache.so
PHP连接memcached检验:
/usr/local/php/bin/php -m|grep memcache
下载测试php脚本
curl www.apelearn.com/study_v2/.memcache.txt >1.php2>/dev/null
/usr/local/php/bin/php 1.php
memcached实现session共享:
1:本实例是在lamp/lnmp环境下实现
编辑php.ini[session]添加两行
session.save_handler = memcache
session.save_path = "tcp://192.168.0.9:11211"
或者httpd.conf对应的虚拟主机中添加
php_value session.save_handler "memcache"
php_value session.save_path "tcp://192.168.0.9:11211"
或者php-fpm.conf对应的pool中添加
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://192.168.0.9:11211"
memcached session测试:
wget http://study.lishiming.net/.mem_se.txt
mv .mem_se.txt /usr/local/apache2/htdocs/session.php
curl localhost/session.php
类似于1443702394<br><br>1443702394<br><br>i44nunao0g3o7vf2su0hnc5440
telnet 127.0.0.1 11211
get i44nunao0g3o7vf2su0hnc5440
转载于:https://blog.51cto.com/11906060/1834545