• MySQL_Memcached


    memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。 memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。 memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以LRU机制替换掉。由于memcached通常只是当作高速缓存系统使用,所以使用memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新memcached内的数据。

    memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。
     
    (一) 服务端安装
     
    1. 安装依赖包和软件
    [root@iZ255aksz8rZ ~]# rpm -qa  memcached nc telnet libevent
    [root@iZ255aksz8rZ ~]# yum install memcached nc telnet libevent
    [root@iZ255aksz8rZ ~]# ll /usr/bin/memcached
    -rwxr-xr-x 1 root root 85256 Nov 12  2010 /usr/bin/memcached
    [root@iZ255aksz8rZ ~]# memcached -h                                          查看帮助文档
    2.启动命令:
    [root@iZ255aksz8rZ ~]# memcached -m 16m -p 11211 -d -u root -c 8192
        -m 16m : 使用多少内存           (default: 64 MB)
        -p 11211 : 使用端口号            (多实例修改端口即可)
        -d :代表使用deamon模式
        -u root :指定运行用户
        -c 8192: 最大连接并发数         (default: 1024)
    [root@iZ255aksz8rZ ~]# lsof -i:11211
    COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    memcached 6563 root   26u  IPv4 1800491      0t0  TCP *:memcache (LISTEN)
    memcached 6563 root   27u  IPv4 1800496      0t0  UDP *:memcache 
     
    telnet 测试:
    [root@iZ255aksz8rZ ~]# telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    set k1 0 0 4
    ning
    STORED
    get k1    
    VALUE k1 0 4
    ning
    END
    replace k1 0 0 6
    pengju
    STORED
    get k1
    VALUE k1 0 6
    pengju
    END
    delete k1
    DELETED
     
    nc测试:
    [root@iZ255aksz8rZ ~]# printf "set k1 0 0 4 ning " | nc 127.0.0.1 11211
    STORED
    [root@iZ255aksz8rZ ~]# printf "get k1 " | nc 127.0.0.1 11211
    VALUE k1 0 4
    ning
    END
    [root@iZ255aksz8rZ ~]# printf "replace k1 0 0 6 pengju " | nc 127.0.0.1 11211
    STORED
    [root@iZ255aksz8rZ ~]# printf "get k1 " | nc 127.0.0.1 11211
    VALUE k1 0 6
    pengju
    END
    [root@iZ255aksz8rZ ~]# printf "delete k1 " | nc 127.0.0.1 11211
    DELETED
     
     
    (二) 客户端安装
     
     
     
    [root@iZ255aksz8rZ ~]# cd /tools
    [root@iZ255aksz8rZ tools]# wget -q http://pecl.php.net/get/memcache-2.2.7.tgz
    [root@iZ255aksz8rZ tools]# tar zxf memcache-2.2.7.tgz
    [root@iZ255aksz8rZ tools]# cd  memcache-2.2.7
    [root@iZ255aksz8rZ memcache-2.2.7]# /application/php/bin/phpize
    Configuring for:
    PHP Api Version:         20121113
    Zend Module Api No:      20121212
    Zend Extension Api No:   220121212
     
    [root@iZ255aksz8rZ memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/application/php/bin/php-config
     
    [root@iZ255aksz8rZ memcache-2.2.7]# make
     
     
    [root@iZ255aksz8rZ memcache-2.2.7]# make install
    Installing shared extensions:     /application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/
     
     
    [root@iZ255aksz8rZ tools]# ls -l /application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/
    total 252
    -rwxr-xr-x 1 root root 258024 Sep 20 21:12 memcache.so
     
    一般情况下memcached需要在安装PHP之后就应该安装,如果已经搭配好环境需要做如下操作:
    [root@iZ255aksz8rZ tools]# vim /application/php/lib/php.ini
     
     
    [root@iZ255aksz8rZ tools]# tail -2 /application/php/lib/php.ini
    extension_dir = "/application/php5.5.32/lib/php/extensions/no-debug-non-zts-20121212/"
    extension=memcache.so   
    此操作是为了加到php扩展文件中,重启PHP生效。
    [root@iZ255aksz8rZ tools]# pkill php-fpm
    [root@iZ255aksz8rZ tools]# /application/php/sbin/php-fpm 
    [root@iZ255aksz8rZ tools]# lsof -i:9000
    COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    php-fpm 9347  root    7u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
    php-fpm 9348 nginx    0u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
    php-fpm 9349 nginx    0u  IPv4 1803282      0t0  TCP localhost:cslistener (LISTEN)
    <?php
    $memcache = memcache_connect('127.0.0.1', 11211) or die ("could not connect Mc server");
    $memcache->set('key', 'hello ningpengju');
    $get=$memcache->get('key');
    echo $get;
    ?>

  • 相关阅读:
    【项目管理】WBS工作分解结构
    【代理篇】内网穿透利器——Termite
    【漏洞分析】Discuz! X系列全版本后台SQL注入漏洞
    【代理篇】内网穿透利器——EarthWorm
    【漏洞复现】Apache Solr远程代码执行(CVE-2019-0193)
    【漏洞复现】Apache Solr via Velocity template远程代码执行
    【漏洞复现】PHPStudy后门
    记一次织梦cms渗透测试
    Mybatis源码手记-从缓存体系看责任链派发模式与循环依赖企业级实践
    Dubbo源码手记-服务注册
  • 原文地址:https://www.cnblogs.com/liuqiang0/p/8526584.html
Copyright © 2020-2023  润新知