1)安装memcached前需要先安装libevent
[root@aliyun tools]# tar -zxf libevent-1.4.13-stable.tar.gz [root@aliyun tools]# cd libevent-1.4.13-stable[root@aliyun libevent-1.4.13-stable]# ./configure [root@aliyun libevent-1.4.13-stable]# make && make install
2)安装memcahced服务
tar -zxf memcached-1.4.13.tar.gz cd memcached-1.4.13./configure make && make install
3)启动服务
[root@weiwei memcached-1.4.13]# memcached -m 16m -p 11211 -d -u root -c 8192给多少内存要自己算,根据需求还可以同时起几个[root@weiwei memcached-1.4.13]# memcached -m 16m -p 11212 -d -u root -c 8192[root@weiwei memcached-1.4.13]# memcached -m 16m -p 11213 -d -u root -c 8192
4)存数据取数据
操作memcached命令的语法:set key 0 0 10\r\n 过期时间
#存储 [root@weiwei ~]# printf "set key008 0 0 10\r\noldboy0987\r\n" | nc 127.0.0.1 11211STORED#查询[root@weiwei ~]# printf "get key008\r\n"|nc 127.0.0.1 11211VALUE key008 0 10oldboy0987END#删除[root@weiwei ~]# printf "delete key008\r\n"|nc 127.0.0.1 11211DELETED也可以telnet登录,,然后操作,但是不是很建议,不方便
5)安装memecache客户端
tar -zxf memcache-2.2.5.tgz cd memcache-2.2.5/application/php/bin/phpize./configure --with-php-config=/application/php/bin/php-config --enable-memcache --with-zlib-direcho $?make && make installll /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/total 244-rwxr-xr-x. 1 root root 246624 Sep 25 20:09 memcache.so
6)因为配置客户端所以要配置php.ini文件
改为如下:winodows的不要改extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"并添加一行extension=memcache.so
7)然后重启php,查看是否生效
pkill php-fpm/application/php/sbin/php-fpmphpinfo();查看有没有相应的模块用php脚本的方式查看 connect('127.0.0.1', 11211) or die ("Could not connect"); //连接Memcached服务器 $memcache->set('key001', 'oldboy001'); //设置一个变量到内存中,名称是key001值是oldboy001 $memcache->set('key002', 'oldboy002'); //设置一个变量到内存中,名称是key002值是oldboy002 $get_value01 = $memcache->get('key001'); //从内存中取出key001的值 $get_value02 = $memcache->get('key002'); //从内存中取出key002的值 echo $get_value02.""; echo $get_value01;?>结果:oldboy002oldboy001
8)memcached如何实现集群中的session共享存储
在php.ini文件中修改,所有的web服务器都改这两个地方就可以共享存储session了,每个WEB服务安装个客户端就好,然后去吧1)session.save_handler = memcache2)session.save_path = "tcp://192.168.222.128:11211"优点:1)memcached是内存缓存,在读写速度上会比普通files时快很多。2)可以解决多个服务器共用session的难题。缺点:1)session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。2)也可以用其他的持久化系统存储sessions,例如:redis,ttserver。3)高性能高并发场景,cookies的效率比session要好很多,因此,很多大网站都会用cookies解决会话共享问题。
9)memcached服务的状态信息如何获取?例如:命中率
[root@weiwei ~]# printf "stats\r\n"|nc 127.0.0.1 11211STAT pid 10813STAT uptime 8917STAT time 1506348783STAT version 1.4.13STAT libevent 1.4.13-stableSTAT pointer_size 64STAT rusage_user 0.237963STAT rusage_system 0.306953STAT curr_connections 10STAT total_connections 17STAT connection_structures 11STAT reserved_fds 20STAT cmd_get 4STAT cmd_set 4STAT cmd_flush 0STAT cmd_touch 0STAT get_hits 3STAT get_misses 1STAT delete_misses 0STAT delete_hits 1STAT incr_misses 0STAT incr_hits 0STAT decr_misses 0STAT decr_hits 0STAT cas_misses 0STAT cas_hits 0STAT cas_badval 0STAT touch_hits 0STAT touch_misses 0STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 191STAT bytes_written 178STAT limit_maxbytes 16777216STAT accepting_conns 1STAT listen_disabled_num 0STAT threads 4STAT conn_yields 0STAT hash_power_level 16STAT hash_bytes 524288STAT hash_is_expanding 0STAT expired_unfetched 0STAT evicted_unfetched 0STAT bytes 160STAT curr_items 2STAT total_items 3STAT evictions 0STAT reclaimed 0图形化的界面管理工具,,状态的信息memadmin
10)memcached需要监控那些 指标
1)端口11211
2)命中3)反应时间4)模拟用户监控php程序:curl http://ip/check_mc.php|grep oldboy|wc -lmemcahce持久化存储,,,ttserver
11)memcached状态查看
stat settings可以查看一些memcached设置 例如 线程数stats slabs 查看slabs相关情况stats items 查看Items相关情况stats sizes查看存在的Item个数和大小stats cachedump 查看key valuestats reset 清理统计数据
12)pkill关闭会关闭掉所有的进程,但是如果此时是多实例的状态,就应该指定pid去关闭
memcached -m 16m -p 11212 -d -u root -c 8192 -P /var/run/11212.pidmemcached -m 16m -p 11213 -d -u root -c 8192 -P /var/run/11213.pidkill `cat /var/run/11212.pid`