标签:
memcached以及php-memcached和nginx-memcached
2016年2月24日
memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过较低对databases的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、api调用或者页面引用结果的直接数据,如字符串、对象等。
memcached是以livejournal旗下danga interactive 公司的brad fitzpatric为首开发的一款软件。现在已成为minx,hatena,facebook,vox,livejournal等众多服务中提高web应用扩展性的重要因素。
memcached是一款开发工具,它既不是一个代码加速器,也不是数据库中间件,其设计哲学思想主要反映在如下两个方面
存储 | 获取数据 | 统计命令 | 清理命令 |
set,add,repalce,append,prepend | get,delete,incr/decr | stats,stats items,stats slabs,stats sizes | flush all |
下载 | curl -O -L https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz |
解压缩 | tar xvf libevent-2.0.21-stable.tar.gz |
配置编译参数 | cd libevent-2.0.21-stable ./configure --prefix=/usr/local/libevent |
编译安装 | make && make install |
添加到系统库中 | echo "/usr/local/libevent/lib/" > /etc/ld.so.conf.d/libevent.conf ldconfig |
|
|
配置编译参数 | ./configure --prefix=/usr/local/memcached --with-libevent=/usr/locl/libevent |
编译安装 | make && make install |
将此文件保存为/etc/init.d/memcached | [root@rs1 bin]# cat /etc/init.d/memcached #! /bin/sh # # chkconfig: - 55 45 # description: The memcached daemon is a network memory cache service. # processname: memcached # config: /etc/sysconfig/memcached # pidfile: /var/run/memcached/memcached.pid
# Standard LSB functions #. /lib/lsb/init-functions
# Source function library. . /etc/init.d/functions
PORT=11211 USER=memcached MAXCONN=1024 CACHESIZE=64 OPTIONS=""
if [ -f /etc/sysconfig/memcached ];then . /etc/sysconfig/memcached fi
# Check that networking is up. . /etc/sysconfig/network
if [ "$NETWORKING" = "no" ] then exit 0 fi
RETVAL=0 prog="memcached" pidfile=${PIDFILE-/var/run/memcached/memcached.pid} lockfile=${LOCKFILE-/var/lock/subsys/memcached}
start () { echo -n $"Starting $prog: " # Ensure that /var/run/memcached has proper permissions if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then chown $USER /var/run/memcached fi
daemon --pidfile ${pidfile} /usr/local/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch ${lockfile} } stop () { echo -n $"Stopping $prog: " killproc -p ${pidfile} /usr/local/memcached/bin/memcached RETVAL=$? echo if [ $RETVAL -eq 0 ] ; then rm -f ${lockfile} ${pidfile} fi }
restart () { stop start }
# See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} memcached RETVAL=$? ;; restart|reload|force-reload) restart ;; condrestart|try-restart) [ -f ${lockfile} ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}" RETVAL=2 ;; esac
exit $RETVAL |
为脚本添加可执行权权限 | chmod +x /etc/init.d/memcached |
添加系统服务 | chkconfig --add memcached |
配置文件内容 | [root@rs1 bin]# cat /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="" |
启动 | service memecached start |
验证端口是否开启 可以登录即正常 | telnet localhost 11211 |
验证是否可以存储 | set test 10 0 12 hello world! 回车后可以看到已经存储了 STORED |
验证是否可以获取刚才存储的信息 | get test 回车后可以看到如下信息 VALUE test 10 12 hello world! END |
安装 | yum -y install httpd php |
启动httpd | service httpd start |
确认httpd是否工作 | [root@rs1 etc]# curl 127.0.0.1 rs1 |
确认php是否工作 | 将 <?php phpinfo();?> 添加到/var/www/html/index.php里面,删除index.html文件 使用curl验证php是否工作: crul 127.0.0.1/index.php如果出来一大堆php解释的信息就是OK了。 或者用elinks 127.0.0.1/index.php 会看到 php的运行信息。
|
1、直接使用 yum -y install php-pecl-memcache.x86_64安装就可以了,可以在phpinfo里面看到支持了memchache的扩展。安装好之后测试。
将代码添加到页面里面测试:
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211) or die ("could not connet");
$mem->set(‘key‘,‘This is a test!‘, 0, 60);
$val = $mem->get(‘key‘);
echo $val;
?>
如果出现了this is a test则证明成功。也可以将自带的memcache管理的php端安装起来。
cp /usr/share/doc/php-pecl-memcache-3.0.5/memcache.php /var/www/html/
然后修改里面的server的配置,
$MEMCACHE_SERVERS[] = ‘192.168.8.21:11211‘; // add more as an array
访问/memcahe.php则可以查看相关的状态了。
顺便说下注意下selinux的规则。默认规则下memcache的扩展不能访问网络,需要关掉才行,或者自己加规则。
memcached以及php-memcached和nginx-memcached
标签:
原文地址:http://www.cnblogs.com/LKad/p/5350530.html