memcache缓存安装配置

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减小数据库负载,提高访问速度。目前用memcache解决互联网上的大用户读取是很是流行的一种用法。php

下载安装

前提要先安装libevent软件官方(http://monkey.org/~provos/libevent/web

其次安装memcache官方(http://memcached.org/数据库

memcached服务端安装缓存

  1. tar zvxf memcached-1.4.5.tar.gz  
    cd memcached-1.4.5  
    ./configure --with-libevent=/usr/local/lib  
    make && make install  
    默认安装,若是libevent指定--prefix安装到其它路么,那么这里相应路径也需更改. 

启动:/usr/local/bin/memcached  -d  -m 512  -p  11211 -u root服务器

1.yum -y install libevent,yum源不能用的下载tar包编译安装。session

2.动态添加php扩展memcache。并发

tar zxvf memcache-3.0.2.tgz

cd memcache-3.0.2
/usr/local/webserver/php-5.2.4/bin/phpize
./configure --with-php-config=/usr/local/webserver/php-5.2.4/bin/php-config --with-zlib-dir=/usr/local/zlib --enable-memcache    ###zlib是一个很好的压缩解压缩库

make && make install 

开启php的配置文件中memcache的模块。

sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/webserver/php-5.2.4/lib/php/extensions/no-debug-non-zts-20060613/"\n\nextension = "memcache.so"\n#' /usr/local/webserver/php-5.2.4/lib/php.ini
sed -i 's#expose_php = On#expose_php = Off#' /usr/local/webserver/php-5.2.4/lib/php.ini
sed -i 's#session.name = PHPSESSID#session.name = CWSSESSID#' /usr/local/webserver/php-5.2.4/lib/php.ini

3.制做启动脚本分布式

#! /bin/sh
. /etc/rc.d/init.d/functions
PORT=11211
USER=root 
MAXCONN=1024
CACHESIZE=64
OPTIONS=""
if [ -f /etc/sysconfig/memcached ];then
    . /etc/sysconfig/memcached
fi
# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
    exit 0
fi

RETVAL=0

start () {
    echo "Starting memcached ..."
    # insure that /var/run/memcached has proper permissions
    chown $USER /usr/local/memcached/bin/memcached 
    /usr/local/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached.pid $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
stop () {
    echo "Stopping memcached ..."
    killproc memcached
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 ] ; then
        rm -f /var/lock/subsys/memcached
        rm -f /var/run/memcached.pid
    fi
}

restart () {
    stop
    start
}


# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
    stop
    ;;
    status)
    status memcached
    ;;
    restart|reload)
    restart
    ;;
    condrestart)
    [ -f /var/lock/subsys/memcached ] && restart || :
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
    exit 1
esac

exit $?
 
4.telnet 127.0.0.1 11211链接

输入stats可查看实例的当前统计数据。

stats
STAT pid 2722                                 进程ID
STAT uptime 1307349              服务器运行秒数
STAT time 1500356291            服务器当前unix时间戳
STAT version 1.2.4              版本
STAT pointer_size 64               操做系统字大小(这台服务器是64位的)
STAT rusage_user 0.100984             进程累计用户时间
STAT rusage_system 0.442932         进程累计系统时间
STAT curr_items 148             item个数
STAT total_items 320             item总数
STAT bytes 8536782             存储item字节数
STAT curr_connections 1            当前打开链接数
STAT total_connections 1840          曾打开的链接总数
STAT connection_structures 4         服务器分配的链接结构数
STAT cmd_get 3192              执行get命令总数
STAT cmd_set 320              执行set命令总数
STAT get_hits 2998               get命中次数
STAT get_misses 194              get未命中次数
STAT evictions 0                 为获取空间删除item的总数
STAT bytes_read 8839037           读取字节总数
STAT bytes_written 93695180         写入字节总数
STAT limit_maxbytes 134217728         分配的内存数(字节)
STAT threads 4                 线程数

可修改memcache默认参数

PORT="11211"
USER="nobody"
MAXCONN="1024"
CACHESIZE="128"  #根据服务器内存调整
OPTIONS=""

5.memcached参数详解

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,若是当前为 root 的话,须要使用此参数指定用户。
-l是监听的服务器IP地址,若是有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发链接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

 
6.两种方法清空memcache缓存

(1).telnet localhost 11211
flush_all

(2).重启服务。
相关文章
相关标签/搜索