Memcached配置与Memcache的php扩展

一、memcache简介

       memcached是一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。

       memcached 是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来 任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源。

       memcached在很多时候都是作为数据库前端cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力,使系统执行效率提升。另外,memcached也经常作为服务器之间数据共享的存储媒介.

       但是,使用memcached时还需要注意的是,memcached使用内存管理数据,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失。另外,内存容量达到指定值之后,就会自动删除不使用的缓存。所以memcached不能用来持久保存数据。

       使用memcached 一般用telent或者一些一些其他语言,例如PHP,C等。memcached 默认的端口是11211。

       memcached 具有惰性清理机制,是C/S架构程序,支持TCP、UDP协议。

二、配置

由于Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent。

Memcached需要libevent这个库作为驱动,所以还需要安装libevent。

libevent下载地址:https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz

memcached下载地址:http://memcached.org/files/memcached-1.5.13.tar.gz

memcache下载地址:
http://pecl.php.net/get/memcache-2.2.7.tgz

1. Memcached部署

  1. 安装libeven

    [root@localhost ~]# wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
    [root@localhost ~]# tar xzf libevent-2.0.20-stable.tar.gz  -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/libevent-2.0.20-stable/
    [root@localhost libevent-2.0.20-stable]# ./configure  --prefix=/usr/local/src/libevent
    [root@localhost libevent-2.0.20-stable]# make & make install
    
    #查看
    [root@localhost ~]# rpm -qa libevent
    libevent-2.0.21-4.el7.x86_64
    
  2. 安装memcached

    [root@localhost ~]# wget http://memcached.org/files/memcached-1.5.13.tar.gz
    [root@localhost ~]# tar xzf memcached-1.5.13.tar.gz -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/memcached-1.5.13/
    [root@localhost memcached-1.5.13]# ./configure --enable-sasl --prefix=/usr/local/src/memcached --with-libevent=/usr/local/src/libevent/
    [root@localhost memcached-1.5.13]# make & make install
    [root@localhost memcached-1.5.13]# 
    
  3. 启动memcached

    [root@localhost ~]# /usr/local/src/memcache/bin/memcached -m 128 -n 20 -f 1.25 -vv -u nobody -d
    

参数说明:
-d 选项是作为守护进程在后台运行

-m 是分配给Memcache使用的内存数量,单位是MB

-u 是运行Memcache的用户

-l 是监听的服务器IP地址,如果有多个地址的话

-p 是设置Memcache监听的端口

-c 选项是最大运行的并发连接数,默认是1024,可以按照你服务器的负载量来设定

-P 是设置保存Memcache的pid文件

-vv 是以very vrebose模式启动,将调试信息和错误输出到控制台

[root@localhost ~]# netstat -unlpt | grep 11211
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      15691/memcached
tcp6       0      0 :::11211                :::*                    LISTEN      15691/memcached

关闭memcached的命令为:

[root@localhost ~]# killall memcached

2. 修改nginx的配置文件,使nginx与php建立连接

#修改
location / {
            #root   html;
            #index  index.html index.htm;
            root /web/htdocs;
            index index.php index.html;
        }

#将#去掉
location ~ \.php$ {
            index index.php index.html;
            root           /web/htdocs;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

3. 安装memcache的php扩展

  1. 首先安装memcached的php专用客户端memcache。

    [root@localhost ~]# wget http://pecl.php.net/get/memcache-2.2.7.tgz
    [root@localhost ~]# tar xzf memcache-2.2.7.tgz -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/memcache-2.2.7/
    [root@localhost memcache-2.2.7]# /usr/bin/phpize
    [root@localhost memcache-2.2.7]#  ./configure --enable-memcache --with-php-config=/usr/bin/php-config
    [root@localhost memcache-2.2.7]# make & make install
    

    在这里插入图片描述

  2. 修改php.ini文件

    添加如下一行代码来载入memcache扩展:

    #查看目录下是否有memcache.so,有则继续操纵
    [root@localhost memcache-2.2.7]# ls /usr/lib64/php/modules/
    curl.so  fileinfo.so  json.so  memcache.so  phar.so  zip.so
      
    [root@localhost memcache-2.2.7]# vim /etc/php.d/memcache.ini
    extension=/usr/lib64/php/modules/memcache.so
    
  3. 测试memcache的php扩展是否安装成功

    运行下面的php代码,如果输出“hello world”,就表示环境搭建成功

    [root@localhost ~]# vim /web/htdocs/test.php
    <?php
    $mem = new Memcache
    $mem->connect("127.0.0.1", 11211);
    $mem->set('test','hello world',0,12);
    $val = $mem->get('test');
    echo $val;
    ?>
    
    [root@localhost ~]# /usr/bin/php test.php
    hello world
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值