memcache服务端与客户端的安装部署

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
<command name> <key> <flags><exptime><bytes>

			     过期时间
#存储							
[root@weiwei ~]# printf "set key008 0 0 10
oldboy0987
" | nc 127.0.0.1 11211
STORED
#查询
[root@weiwei ~]# printf "get key008
"|nc 127.0.0.1 11211
VALUE key008 0 10
oldboy0987
END
#删除
[root@weiwei ~]# printf "delete key008
"|nc 127.0.0.1 11211
DELETED

也可以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-dir
echo $?
make && make install
ll /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-fpm
phpinfo();查看有没有相应的模块

用php脚本的方式查看
<?php
    $memcache = new Memcache; //创建一个memcache对象
    $memcache->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."<br>";
    echo $get_value01;
?>

结果:
oldboy002
oldboy001

8)memcached如何实现集群中的session共享存储

在php.ini文件中修改,所有的web服务器都改这两个地方就可以共享存储session了,每个WEB服务安装个客户端就好,然后去吧
1)session.save_handler = memcache
2)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
"|nc 127.0.0.1 11211
STAT pid 10813
STAT uptime 8917
STAT time 1506348783
STAT version 1.4.13
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 0.237963
STAT rusage_system 0.306953
STAT curr_connections 10
STAT total_connections 17
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 4
STAT cmd_set 4
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 3
STAT get_misses 1
STAT delete_misses 0
STAT delete_hits 1
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 191
STAT bytes_written 178
STAT limit_maxbytes 16777216
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 160
STAT curr_items 2
STAT total_items 3
STAT evictions 0
STAT reclaimed 0

图形化的界面管理工具,,状态的信息
memadmin

10)memcached需要监控那些 指标

1)端口11211
2)命中
3)反应时间
4)模拟用户监控
php程序:curl http://ip/check_mc.php|grep oldboy|wc -l

memcahce持久化存储,,,ttserver

11)memcached状态查看

stat settings可以查看一些memcached设置 例如 线程数
stats slabs 查看slabs相关情况
stats items 查看Items相关情况
stats sizes查看存在的Item个数和大小
stats cachedump 查看key value
stats reset 清理统计数据

12)pkill关闭会关闭掉所有的进程,但是如果此时是多实例的状态,就应该指定pid去关闭

memcached -m 16m -p 11212 -d -u root -c 8192 -P /var/run/11212.pid
memcached -m 16m -p 11213 -d -u root -c 8192 -P /var/run/11213.pid
kill `cat /var/run/11212.pid`

  

 

原文地址:https://www.cnblogs.com/bill2014/p/7611642.html