zoukankan      html  css  js  c++  java
  • Memcached的安装和使用以及nginx整合memcached

    一、模块的安装启动

    wget http://cdnetworks-kr-2.d1.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.10-stable.tar.gz
    wget http://nchc.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz

    libevent
    ./configure
    make
    make install

    vim /etc/ld.so.conf

    /usr/local/libevent-2.0.22/lib/
    ldconfig

    wget http://memcached.org/files/memcached-1.4.25.tar.gz
    小伙伴们翻墙吧
    tar xvf memcached-1.4.25.tar.gz

    http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt 文档

    cd /usr/local/memcached-1.4.25/bin/

    LD_DEBUG=libs /usr/local/memcached-1.4.25/bin/memcached -v


    ./memcached -d -m 10 -u nobody ./memcached -d -m 10 -u nobody -p 11212 -U 11213 ./memcached -d -m 10 -u nobody -p 11212 -U 11213 -s /tmp/memcached.socket 套接字路径 ./memcached -d -m 10 -u nobody -p 11212 -U 11213 -l 192.168.3.139 监听的ip地址

    -p TCP监听端口; -U UDP监听端口;-s 指定Unix套接字的路径; -a Unix套接字的掩码;-l 指定监听的网络端口;
    -d 作为守护进程; -r 内核文件的最大值限制; -u 指定的用户运行; -m 缓存条目的最大内存值; -M在内存耗尽时返回错误(而不是删除缓存条目); -c 限制同时的最大连接数;-k 锁定所有分页内存; -v 详细模式; -vv 非常详细的模式; -vvv极其详细的模式; -h打印帮助并退出; -i 打印Memcached和libevent许可; -P 指定保存PID文件的路径及文件名; -f 设置块大小的增长因子; -n 指定分配给key+value+flags的最小空间; -L尽量使用最大内存页; -D指定分隔符; -t使用的线程数; -R 通过该参数来设定限制值; -C禁止使用CAS; -b设置等待(积压)队列的限制; -B 设置绑定的协议; -I 设定每一个块页的大小;

    [root@CDN03 bin]# ps -ef | grep memcached
    nobody 20524 1 0 19:34 ? 00:00:00 ./memcached -d -m 10 -u nobody -p 11212 -U 11213
    root 20531 9071 0 19:34 pts/0 00:00:00 grep memcached
    [root@CDN03 bin]# lsof -p 20524
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    memcached 20524 nobody cwd DIR 8,3 4096 2 /


    二、其他模块的安装

    测试 telnet 192.168.15.134 11211
    (1)damemtop
    perl 模块:perl Makefile.PL; make ; make install;
    AnyEvent http://search.cpan.org/dist/AnyEvent/lib/AnyEvent.pm
    http://www.cpan.org/authors/id/M/ML/MLEHMANN/AnyEvent-7.11.tar.gz
    
    YAML http://www.cpan.org/modules/by-module/YAML/
    http://www.cpan.org/modules/by-module/YAML/YAML-1.15.tar.gz
    
    TermReadKey http://pkgs.repoforge.org/perl-TermReadKey/
    
    cp damemtop.yaml /etc/
    
    (2)memcached-init start-memcached
    
    start-stop-daemon http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
    gcc start-stop-daemon.c -o start-stop-daemon
    cp start-stop-daemon /bin/
    
    (3)memcached.sysv
    718 cp memcached.sysv /etc/init.d/memcached_sysv
    719 chkconfig --list | grep memcached_sysv
    720 chkconfig --add | grep memcached_sysv
    721 chkconfig --add memcached_sysv
    722 chkconfig --list | grep memcached_sysv
    723 chkconfig --level 35 memcached_sysv on
    724 chkconfig --list | grep memcached_sysv
    
    (4)memcached-tool
    735 ./memcached-tool 127.0.0.1:11211 display
    736 ./memcached-tool 127.0.0.1:11211
    737 ./memcached-tool 127.0.0.1:11211 stats
    738 ./memcached-tool 127.0.0.1:11211 dump

    三 、操作方法
    <command name> <key> <flags> <exiptme> <bytes> [noreply]

    cas <key> <flags> <exptime> <bytes> <cas unique> [noreply]

    set存储指定数据;
    add在没有该<key>的情况下存储数据;
    replace在有该<key>的情况下存储数据;
    append追加数据到尾部;
    prepend追加数据到首部;
    incr/decr 增加或减少某值

    set a 36 0 5
    12345
    
    get a
    
    add a 36 0 5
    abcde
    
    delete a
    
    stats
    
    stats slabs
    
    stats items
    
    flush_all //缓存刷新失效
    
    flush_all 120 //120秒后缓存刷新失效
    
    incr a 11 //增加或减少某值,不能对非数字的value操作
    decr a 11

    四、统计

    stats items
    STAT items:1:number 6
    STAT items:1:age 1161
    STAT items:1:evicted 0
    STAT items:1:evicted_nonzero 0
    STAT items:1:evicted_time 0
    STAT items:1:outofmemory 0
    STAT items:1:tailrepairs 0
    STAT items:1:reclaimed 0
    STAT items:1:expired_unfetched 0
    STAT items:1:evicted_unfetched 0
    STAT items:1:crawler_reclaimed 0
    STAT items:1:crawler_items_checked 0
    STAT items:1:lrutail_reflocked 0
    
    number 目录在这个类型存储下的条目
    age 在算法LRU下, 最老条目经历的时间;
    evicted 在生存期满之前,才算法LRU中一个条目不得不被驱赶出缓存的次数;
    outofmemory: 该slabclass不能够存储新条目的次数。这种情况一般出现在启动Memcached服务器时使用了-M参数,或是在清楚条目时失败所致。
    
    stats sizes
    STAT 96 7
    STAT <条目大小> <条目数量>

    五、nginx的编译
    yum install -y zlib-devel gcc gcc-c++
    编译nginx(略)
    nginx的配置如下:

        server {
            location / {
                set $memcached_key $uri;
                memcached_pass 127.0.0.1:11211;
                memcached_buffer_size 16k;
                memcached_read_timeout 30000;
                memcached_send_timeout 30000;
                default_type text/html;
                #error_page 404 @fallback;
            }
    
            location @fallback {
                proxy_pass http://192.168.3.139:8080;
            }
     }

  • 相关阅读:
    js如何引入本地json文件
    python学习笔记(八)———— IO编程
    python学习笔记(七)———— 错误、调试和测试
    接口测试
    cookie和token都存放在header中,为什么不会劫持token?
    占位
    MongoDB和MySql的区别(详细)且会持续补充
    【转】五分钟让你彻底了解TDD、ATDD、BDD&RBE
    python学习笔记(六)————面向对象高级编程
    Fiddler模拟接口数据(mock)(四)
  • 原文地址:https://www.cnblogs.com/bugutian/p/5029922.html
Copyright © 2011-2022 走看看