LNMP+Memcached
这里我还是使用LNMP三层结构配置的实验环境,请点击链接:以下是拓扑图:
新增一台memcached服务器:system: redhat 6.4_x64 ipaddress: 192.168.100.511、memcached服务器上1)安装libevent-2.0.16-stable.tar.gz#./configure --prefix=/usr/local/libevent# make &&make install# echo "/usr/local/libevent/lib" >/etc/ld.so.conf.d/libevent.conf# ldconfig -vmemcached-1.4.5.tar.gz# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/# make &&make install2)为memcached提供启动脚本:# vim /etc/init.d/memcached#!/bin/bash# Init file for memcached# chkconfig: - 86 14# description: Distributed memory caching daemon## processname: memcached# config: /etc/sysconfig/memcached. /etc/rc.d/init.d/functions## Default variablesPORT="11211"USER="nobody"MAXCONN="1024"CACHESIZE="64"OPTIONS=""[ -f /usr/local/memcached/memcached.conf ] && . /usr/local/memcached/memcached.confRETVAL=0prog="/usr/local/memcached/bin/memcached"desc="Distributed memory caching"lockfile="/var/lock/subsys/memcached"start() { echo -n $"Starting $desc (memcached): " daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $lockfile return $RETVAL}stop() { echo -n $"Shutting down $desc (memcached): " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile return $RETVAL}restart() { stop start}reload() { echo -n $"Reloading $desc ($prog): " killproc $prog -HUP RETVAL=$? echo return $RETVAL}case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e $lockfile ] && restart RETVAL=$? ;; reload) reload ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1esacexit $RETVAL3)为memcached服务脚本提供配置文件# vim /usr/local/memcached/memcached.confPORT="11211"USER="nobody"MAXCONN="1024"CACHESIZE="128"# chmod +x /etc/init.d/memcached# chkconfig --add memcached# service memcached start4)验证是否正常# netstat -tnlp 查看是否有11211端口开启使用telent查看memcached相关状态# telnet localhost 11211Trying 192.168.0.102...Connected to 192.168.0.102.Escape character is '^]'.statsSTAT pid 9125 #进程IDSTAT uptime 2444 #服务器运行秒数STAT time1396572286 #服务器当前unix时间戳STAT version 1.4.17 #服务器版本STAT libevent 2.0.16-stable #libevent版本号STAT pointer_size 64 #操作系统指针大小(这台服务器是64位的)STAT rusage_user 0.091986 #进程累计用户时间STAT rusage_system 0.107983 #进程累计系统时间STAT curr_connections 10 #当前打开连接数STAT total_connections 13 #曾打开的连接总数STAT connection_structures 11 #服务器分配的连接结构数STAT reserved_fds 20 #内部使用的FD数STAT cmd_get 1 #执行get命令总数STAT cmd_set 1 #执行set命令总数STAT cmd_flush 0 #执行flush命令总数STAT cmd_touch 0 #执行touch命令总数STAT get_hits 1 #get命中次数STAT get_misses 0 #get未命中次数STAT delete_misses 0 #delete未命中次数STAT delete_hits 0 #delete命中次数STAT incr_misses 0 #incr未命中次数STAT incr_hits 0 #incr命中次数STAT decr_misses 0 #decr未命中次数STAT decr_hits 0 #decr命中次数STAT cas_misses 0 #cas未命中次数STAT cas_hits 0 #cas命中次数STAT cas_badval 0 #使用擦拭次数STAT touch_hits 0 #touch命中次数STAT touch_misses 0 #touch未命中次数STAT auth_cmds 0 #认证处理的次数STAT auth_errors 0 #认证失败次数STAT bytes_read 7 #读取字节总数STAT bytes_written 0 #写入字节总数STAT limit_maxbytes 134217728 #现在的内存大小为128MSTAT accepting_conns 1 #目前接受的新接数STAT listen_disabled_num 0 #失效的监听数STAT threads 4 #当前线程数STAT conn_yields 0 #连接操作主支放弃数目STAT hash_power_level 16 #hash等级STAT hash_bytes 524288 #当前hash表等级STAT hash_is_expanding 0 #hash表扩展大小STAT bytes 0 #当前存储占用的字节数STAT curr_items 0 #当前存储数据总数STAT total_items 0 #启动以来存储的数据总数STAT expired_unfetched 0 #已过期但未获取的对象数目STAT evicted_unfetched 0 #已驱逐但未获取的对象数目STAT evictions 0 #LRU释放的对象数目STAT reclaimed 0 #用已过期的数据条目来存储新数据的数目END使用quit退出当前交互模式当然了,你的数据肯定和我的不一样,我的是做完整个实验显示的结果,所以不用纠结有的地方不一样 2、php服务器上安装配置memcache客户端:1)安装# pecl install memcache说明:看到下面的信息,就说明php memcache 模块安装完成,输入yes2)配置php在php配置文件中加入 extension = "memcache.so"memcache.chunk_size = 32768======================================================================
或者,安装也可以使用源码安装 ||# tar xf memcache-3.0.8.tgz ||# phpize || # ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache ||# make && make install || 注意保存最后的一串代码 ||/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ || 由于memcache没有自动添加ini文件 ||# mkdir /etc/php.d ||# vim /etc/php.d/memcache.ini ||extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache.so" || ========================================================================然后重启php-fpm
# service php-fpm restart
查看一下当前php己加载的模块:
# php -m3)测试验证些时我们在浏览器中输入http://192.168.100.11/index.php查看是否有下图 建立测试页面:# vim /web/php/memcached.php<?php $mem = new Memcache; $mem->connect("192.168.100.51", 11211) or die("Could not connect"); $version = $mem->getVersion(); echo "Server's version: ".$version."<br/>\n"; $mem->set('testkey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server"); echo "Store data in the cache (data will expire in 600 seconds)<br/>\n"; $get_result = $mem->get('testkey'); echo "$get_result is from memcached server.";?>浏览器显示是否为下图: