• memcache服务端与客户端的安装部署


    1)安装memcached前需要先安装libevent

    [root@aliyun tools]# tar -zxf libevent-1.4.13-stable.tar.gz 
    [root@aliyun tools]# cd libevent-1.4.13-stable
    [root@aliyun libevent-1.4.13-stable]# ./configure 
    [root@aliyun libevent-1.4.13-stable]# make && make install
    

    2)安装memcahced服务

    tar -zxf memcached-1.4.13.tar.gz 
    cd memcached-1.4.13
    ./configure 
    make && make install
    

    3)启动服务

    [root@weiwei memcached-1.4.13]# memcached -m 16m -p 11211 -d -u root -c 8192
    给多少内存要自己算,根据需求
    还可以同时起几个
    [root@weiwei memcached-1.4.13]# memcached -m 16m -p 11212 -d -u root -c 8192
    [root@weiwei memcached-1.4.13]# memcached -m 16m -p 11213 -d -u root -c 8192
    

    4)存数据取数据

    操作memcached命令的语法:
    set      		key   0    		0     10
    <command name> <key> <flags><exptime><bytes>
    
    			     过期时间
    
    #存储							
    [root@weiwei ~]# printf "set key008 0 0 10
    oldboy0987
    " | nc 127.0.0.1 11211
    STORED
    #查询
    [root@weiwei ~]# printf "get key008
    "|nc 127.0.0.1 11211
    VALUE key008 0 10
    oldboy0987
    END
    #删除
    [root@weiwei ~]# printf "delete key008
    "|nc 127.0.0.1 11211
    DELETED
    
    也可以telnet登录,,然后操作,但是不是很建议,不方便
    

    5)安装memecache客户端

    tar -zxf memcache-2.2.5.tgz 
    cd memcache-2.2.5
    /application/php/bin/phpize
    ./configure --with-php-config=/application/php/bin/php-config --enable-memcache --with-zlib-dir
    echo $?
    make && make install
    ll /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
    total 244
    -rwxr-xr-x. 1 root root 246624 Sep 25 20:09 memcache.so
    

    6)因为配置客户端所以要配置php.ini文件

    改为如下:
    winodows的不要改
    extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"
    
    并添加一行
    extension=memcache.so
    

    7)然后重启php,查看是否生效

    pkill php-fpm
    /application/php/sbin/php-fpm
    phpinfo();查看有没有相应的模块
    
    用php脚本的方式查看
    <?php
        $memcache = new Memcache; //创建一个memcache对象
        $memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); //连接Memcached服务器
        $memcache->set('key001', 'oldboy001'); //设置一个变量到内存中,名称是key001值是oldboy001
        $memcache->set('key002', 'oldboy002'); //设置一个变量到内存中,名称是key002值是oldboy002
        $get_value01 = $memcache->get('key001'); //从内存中取出key001的值
        $get_value02 = $memcache->get('key002'); //从内存中取出key002的值
        echo $get_value02."<br>";
        echo $get_value01;
    ?>
    
    结果:
    oldboy002
    oldboy001
    

    8)memcached如何实现集群中的session共享存储

    在php.ini文件中修改,所有的web服务器都改这两个地方就可以共享存储session了,每个WEB服务安装个客户端就好,然后去吧
    1)session.save_handler = memcache
    2)session.save_path = "tcp://192.168.222.128:11211"
    
    
    优点:
    1)memcached是内存缓存,在读写速度上会比普通files时快很多。
    2)可以解决多个服务器共用session的难题。
    缺点:
    1)session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。
    2)也可以用其他的持久化系统存储sessions,例如:redis,ttserver。
    3)高性能高并发场景,cookies的效率比session要好很多,因此,很多大网站都会用cookies解决会话共享问题。
    

    9)memcached服务的状态信息如何获取?例如:命中率

    [root@weiwei ~]# printf "stats
    "|nc 127.0.0.1 11211
    STAT pid 10813
    STAT uptime 8917
    STAT time 1506348783
    STAT version 1.4.13
    STAT libevent 1.4.13-stable
    STAT pointer_size 64
    STAT rusage_user 0.237963
    STAT rusage_system 0.306953
    STAT curr_connections 10
    STAT total_connections 17
    STAT connection_structures 11
    STAT reserved_fds 20
    STAT cmd_get 4
    STAT cmd_set 4
    STAT cmd_flush 0
    STAT cmd_touch 0
    STAT get_hits 3
    STAT get_misses 1
    STAT delete_misses 0
    STAT delete_hits 1
    STAT incr_misses 0
    STAT incr_hits 0
    STAT decr_misses 0
    STAT decr_hits 0
    STAT cas_misses 0
    STAT cas_hits 0
    STAT cas_badval 0
    STAT touch_hits 0
    STAT touch_misses 0
    STAT auth_cmds 0
    STAT auth_errors 0
    STAT bytes_read 191
    STAT bytes_written 178
    STAT limit_maxbytes 16777216
    STAT accepting_conns 1
    STAT listen_disabled_num 0
    STAT threads 4
    STAT conn_yields 0
    STAT hash_power_level 16
    STAT hash_bytes 524288
    STAT hash_is_expanding 0
    STAT expired_unfetched 0
    STAT evicted_unfetched 0
    STAT bytes 160
    STAT curr_items 2
    STAT total_items 3
    STAT evictions 0
    STAT reclaimed 0
    
    图形化的界面管理工具,,状态的信息
    memadmin
    

    10)memcached需要监控那些 指标

    1)端口11211
    2)命中
    3)反应时间
    4)模拟用户监控
    php程序:curl http://ip/check_mc.php|grep oldboy|wc -l

    memcahce持久化存储,,,ttserver

    11)memcached状态查看

    stat settings可以查看一些memcached设置 例如 线程数
    stats slabs 查看slabs相关情况
    stats items 查看Items相关情况
    stats sizes查看存在的Item个数和大小
    stats cachedump 查看key value
    stats reset 清理统计数据
    

    12)pkill关闭会关闭掉所有的进程,但是如果此时是多实例的状态,就应该指定pid去关闭

    memcached -m 16m -p 11212 -d -u root -c 8192 -P /var/run/11212.pid
    memcached -m 16m -p 11213 -d -u root -c 8192 -P /var/run/11213.pid
    kill `cat /var/run/11212.pid`
    

      

     

  • 相关阅读:
    VMware Workstation 虚拟机纯 Linux 终端如何安装 VMware Tools ?
    Linux Debian 如何部署 Qt?
    D3D9和OpenGL加载纹理图片的API是哪个?
    为什么调用 GdiplusShutdown 函数会在 DllExports::GdipDeleteGraphics(nativeGraphics) 位置抛出异常?
    What are DESC and ASC Keywords?
    qt sql 模块有哪些类?
    如何使用cmd命令行打开一个文件夹?
    cvs 文件如何解析?
    qt 如何给图元安装一个场景事件过滤器?
    linux命令 cp 递归复制 带权限复制
  • 原文地址:https://www.cnblogs.com/bill2014/p/7611642.html
Copyright © 2020-2023  润新知