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