美文网首页
Memcache缓存(一)

Memcache缓存(一)

作者: PHPer_ | 来源:发表于2017-09-01 18:11 被阅读171次

    什么是Memcache?

    是分布式高速缓存系统;
    分布式:可以在多台服务器上同时安装Memcache服务,达到一个很好的集群效果;
    高速:Memcache所有的数据都是维护在内存中的;
    它的读取速度比我们存储在硬盘中的数据的读取速度快很多;

    Memcache有什么用?

    当我们的应用访问量特别大的时候,我们数据库的压力也会特别大,Memcache的出现可以在应用和数据库当中增加一个缓冲层;
    我们之前已经在数据库读取过的数据,当第二次再访问的时候
    我们可以直接访问Memcache去读取这些数据,从而减轻Mysql数据库的压力;

    怎样理解Memcache?

    Memcache是只有一张表的数据库,这张表有两个字段,分别是主键key和value,value中就是我们保存的数据,key就是这份数据的id,用来保证我们在查找时的唯一性,在脑海中要生成一个简单的模型;

    Memcache使用场景

    1、非持久化存储:对数据存储要求不高;
    也就是说如果这份数据丢失了也不会对我的应用造成太大的影响;
    2、分布式存储:不适合单机使用;
    Memcache对于内存的消耗很大,Memcache和数据库最好是分两台服务器放置;
    3、Memcache是key/value存储:格式简单,不支持List、Array数据格式;

    安装说明

    我们在Linux系统上安装软件一般有两种方法:
    1、编译安装(Libevent Memcache)
    我们在安装Memcache的时候是需要先安装Libevent这个扩展,编译安装的好处是你可以在安装的时候进行一些自定义的设置,比如我们可以指定软件安装到哪里;相对而言不太好的地方是,假如你在编译的时候出现了一些错误,而你又对Linux了解不是特别多的情况下,处理错误的时候会比较困难;
    2、使用Linux自带依赖管理工具
    CentOS的yum或者是Ubuntu的apt-get;

    注意:

    Memcache有两个版本分别是Memcache和Memcached
    推荐使用Memcached,它是Memcache的升级版本,比Memcache有了更多的升级操作并且速度和稳定性上都比Memcache要好很多;

    Memcached服务端安装

    首先第一步使用依赖管理工具安装Memcached

    yum install memcached
    //选择y安装完成
    Is this ok [y/N]: y
    

    启动Memcached

    //-d(守护进程的模式去启动它,当你从终端窗口退出后这个程序依然可以进行)
    //-l(IP地址,这里用本机的IP地址127.0.0.1)
    //-p(端口号,11211)
    //-m(为Memcached分配多少的内存以M为单位,150)
    //-u(以哪个用户的身份启动Memcached,这里直接使用超级管理员root身份)
    /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root
    

    查看是否正常启动

    ps -ef | grep memcach
    

    客户端的安装

    1、安装Libmemcached

    下载Libmemcached

    wget http://launchpad.Net/libmemcached/1.0/1.0.10/+download/libmemcached-1.0.10.tar.gz
    

    解压Libmemcached

    tar zxvf libmemcached-1.0.10.tar.gz
    

    进入到解压包目录

    cd libmemcached-1.0.10
    

    配置config到指定目录

    ./configure --prefix=/usr/lib/libmemcached
    

    make命令编译安装

    make && make install
    

    编译安装过程大概需要5分钟左右

    2、为PHP安装memcached扩展

    下载memcached

    wget http://pecl.php.net/get/memcached-2.2.0.tgz
    

    解压memcached

    tar zxvf memcached-2.2.0.tgz
    

    进入到解压包目录

    cd memcached-2.2.0
    

    Linux下用phpize命令为PHP安装扩展

    phpize
    

    再列出文件下所有文件就会多出config配置文件,然后运行该文件

    ./configure
    

    这个时候提示错误找不到php-config文件


    手动帮它指引一下php-cofing文件地址,php-cofing文件地址根据各自安装的目录填写,如果不知道的情况下,在服务器根目录使用查找命令

    find -name php-config
    

    手动帮它指引一下php-cofing文件地址

    ./configure --with-php-config=/usr/local/php/bin/php-config
    

    回车后发现又报了一个错误,找不到我们刚才安装的Libmemcached

    这时再告诉它我们刚才安装的Libmemcached的路径

    ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached
    

    回车后发现又报错了

    说我们不支持sasl这个功能,按照它给的指引运行下面的命令

    ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl
    

    回车设置成功
    然后先make编译一下

    make
    

    提示我们已经成功了,最好不要忘了测试一下
    这里我们直接编译安装

    make install
    

    提示我们扩展已经安装完成并且告诉我们了扩展目录



    接下来我们需要在PHP扩展文件中把这个扩展加进来,首先编辑一下php.ini的配置文件,把这个扩展加进去

    vim /usr/local/php/etc/php.ini
    

    打开配置文件后直接shift+g跳到文件最后一行,把扩展加上

    extension=memcached.so
    

    然后保存退出
    更改完php配置文件后要重启服务器

    lnmp restart
    

    完成后查看一下php扩展

    php -m
    

    然后查看一下有没有memcached这个扩展

    php -m | grep memcached
    

    到这一步就说明我们已经为PHP安装好了memcached扩展

    接下来我们要看一下我们到底可不可以使用memcached扩展
    去连接memcache

    相关文章

      网友评论

          本文标题:Memcache缓存(一)

          本文链接:https://www.haomeiwen.com/subject/ozxkjxtx.html