memcached服务器安装

PS:Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。

  • 系统操作环境的设置

    系统初始化设置请参考—>centos系统初始化
    Memcached官网

            #软件安装包存储:
            /usr/local/src
            /usr/local/memcached  memcached安装目录
            
            #为方便查找目录,设置变量
            # vi .bashrc
            alias  worksrc='cd /usr/local/src;ls'
            配置生效
            # source .bashrc
            
  1. 安装依赖库libevent

    libevent官网

            #下载安装libevent
            [root@local ~] worksrc;
            [root@local ~] wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz;
            [root@local ~] tar -zxvf libevent-2.0.19-stable.tar.gz;
            [root@local ~] cd libevent-2.0.19-stable;
            [root@local ~] ./configure --prefix=/usr/local;
            [root@local ~] make && make install;
            #命令汇总:
            worksrc; wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz; tar -zxvf libevent-2.0.19-stable.tar.gz; cd libevent-2.0.19-stable; ./configure --prefix=/usr/local; make && make install;
            

    基于libevent的事件处理libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理.
    包装的接口包括:poll、select(Windows)、epoll(Linux)、kqueue(BSD)、/dev/pool(Solaris)
    Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力

  2. 安装memcached服务器

    官网下载

            #下载安装memcached
            [root@local ~] worksrc;
            [root@local ~] wget http://www.memcached.org/files/memcached-1.4.20.tar.gz;
            [root@local ~] tar -zxvf memcached-1.4.20.tar.gz;
            [root@local ~] cd memcached-1.4.20;
            [root@local ~] ./configure --prefix=/usr/local/memcached;
            [root@local ~] make && make install;
            #命令汇总
            worksrc; wget http://www.memcached.org/files/memcached-1.4.20.tar.gz; tar -zxvf memcached-1.4.20.tar.gz; cd memcached-1.4.20; ./configure --prefix=/usr/local/memcached; make && make install;
            
  3. 启动memcahed服务器

            /usr/local/memcached/bin/memcached -d -m128 -u root -p 11211
            

    memcached 1.4.15 命令文档

            -p num      监听的TCP端口(默认: 11211)
            -U num      监听的UDP端口(默认: 11211, 0表示不监听)
            -s file     用于监听的UNIX套接字路径(禁用网络支持)
            -a mask     UNIX套接字访问掩码,八进制数字(默认:0700)
            -l ip_addr  监听的IP地址.(默认:INADDR_ANY,所有地址)
            -d          作为守护进程来运行.
            -r          最大核心文件限制.
            -u username 设定进程所属用户.(只有root用户可以使用这个参数)
            -m num      单个数据项的最大可用内存,以MB为单位.(默认:64MB)
            -M          内存用光时报错.(不会删除数据)
            -c num      最大并发连接数.(默认:1024)
            -k            锁定所有内存页.注意你可以锁定的内存上限.
                          试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限.
                          (不是前面的 -u username> 参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置.)
            -v            提示信息(在事件循环中打印错误/警告信息.)
            -vv           详细信息(还打印客户端命令/响应)
            -vvv          超详细信息(还打印内部状态的变化)
            -h            打印这个帮助信息并退出.
            -i            打印memcached和libevent的许可.
            -P file     保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义.
            -f factor   块大小增长因子.(默认:1.25)
            -n bytes    分配给key+value+flags的最小空间(默认:48)
            -L            尝试使用大内存页(如果可用的话).提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率.
                          为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块.
            -D char     使用  作为前缀和ID的分隔符.
                          这个用于按前缀获得状态报告.默认是":"(冒号).
                          如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启.
            -t num      使用的线程数(默认:4)
            -R            每个连接可处理的最大请求数.
            -C            禁用CAS.
            -b            设置后台日志队列的长度(默认:1024)
            -B            绑定协议 - 可能值:ascii,binary,auto(默认)
            -I            重写每个数据页尺寸.调整数据项最大尺寸
            

    实例:/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.1.10 -p 12001 -c 256 -P /tmp/memcached.pid
    参数说明:
    -d 选项是启动一个守护进程,
    -m 是分配给Memcache使用的内存数量,单位是MB,这里是1GB,
    -u 是运行Memcache的用户,这里是root,
    -l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开.这里指定了服务器的IP地址192.168.13.236,
    -p 是设置Memcache监听的端口,我这里设置了12001,最好是1024以上的端口,
    -c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
    -P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

  4. 结束Memcache进程

            # ps -aux | grep memcache
            root     10568  0.0  0.1 331028  1204 ?        Ssl  15:31   0:00 /usr/local/memcached/bin/memcached -d -m128 -u root -p 11211
            root     10677  0.0  0.0 103240   876 pts/3    S+   16:03   0:00 grep memcach*
            #然后直接kill掉memcache进程10568
            kill -9 10568
            
  5. 编写Memcached启动脚本

            [root@local ~] vim /etc/init.d/memcached
            #!/bin/bash
            # author:kuangl
            # date:2013-05-30
            # description: Starts and stops the Memcached services.
            # pidfile: /tmp/memcached1.pid
            # config:  /usr/local/memcached
            # chkconfig: - 55 45
            # source function library
            . /etc/rc.d/init.d/functions
            #设置memcached命令路径
            memcached="/usr/local/memcached/bin/memcached"
            [ -e $memcached ] || exit 1
            start()
            {
                echo "Starting memcached:"
                #修改自己设置的启动参数
                daemon $memcached -d -m 1000 -u root -p 11211
            }
            stop()
            {
                echo "Shutting down memcached"
                killproc memcached
            }
            case "$1" in
            start)
                start
            ;;
            stop)
                stop
            ;;
            restart)
                stop
                sleep 3
                start
            ;;
            *)
            echo $"Usage: $0 {start|stop|restart}"
            exit 1
            esac
            exit $?
            #增加启动权限 chmod a+x /etc/init.d/memcached
            

    将memcached加入系统启项

            [root@local ~] chkconfig  --add memcached
            [root@local ~] chkconfig --level 35 memcached on
            
  6. 一机多Memcached服务端

    可以启动多个守护进程,但是端口不能一样.这样就可以在一台机器上拥有多个Memcached服务器端

  7. 当前memcahed服务端的状态

    首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前此端口memcached服务端的状态

            #这些状态的说明如下:
            pid     memcache服务器的进程ID
            uptime  服务器已经运行的秒数
            time    服务器当前的unix时间戳
            version memcache版本
            pointer_size 当前操作系统的指针大小(32位系统一般是32bit)
            rusage_user  进程的累计用户时间
            rusage_system   进程的累计系统时间
            curr_items      服务器当前存储的items数量
            total_items     从服务器启动以后存储的items总数量
            bytes   当前服务器存储items占用的字节数
            curr_connections        当前打开着的连接数
            total_connections       从服务器启动以后曾经打开过的连接数
            connection_structures   服务器分配的连接构造数
            cmd_get get命令(获取)总请求次数
            cmd_set set命令(保存)总请求次数
            get_hits    总命中次数
            get_misses  总未命中次数
            evictions 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
            bytes_read      总读取字节数(请求字节数)
            bytes_written   总发送字节数(结果字节数)
            limit_maxbytes  分配给memcache的内存大小(字节)
            threads 当前线程数
            

总结:
1:总结内容


参考:
1.参考内容
2.参考内容

相关文章
  1. 对Web静态资源缓存自动更新的思考与实践的总结
  2. 单机多git帐号的访问详解案例
  3. CentOS 6.5安装部署SVN 1.8.13
  4. php-redis扩展
  5. Redis安装部署
  6. gearman应用-分布式图库系统设计
本站版权
1、本站所有主题由该文章作者发表,该文章作者与尘埃享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和尘埃的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:
二维码
Posted in Cache/File存储, Memcached

发表评论