Linux下安装Memcached及php的memcache扩展库

18 篇文章 0 订阅
2 篇文章 0 订阅

Memcache是什么?
Memcache是一个自由和开放源代码、高性能、分配内存对象缓存的系统。用于加速动态web应用程序,减轻数据库负载。它可以应对任意多个连接,使用非阻塞的网络IO。它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,由Memcached自己管理这些HashTable。


Memcache知名用户:LiveJournal、Wikipedia、Flickr、Bebo、Twitter、Typepad、 Yellowbot、Youtube等。
Memcache官方网站:http://memcached.org/

Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。

那PHP中的Memcache是什么?
php中所讲的memcache是用于连接Memecached的客户端组件。

Memcached的安装:
 
    从官方网站下载最新的memcached,当前最新版本为memcached-1.4.5.tar.gz
    除此之外,memcached用到了libevent。因此,安装memcached前,先要安装libevent。
    libevent下载地址:http://monkey.org/%7Eprovos/libevent/ ,我选择的版本为libevent-1.4.14b-stable.tar.gz

    # tar -xzf libevent-1.4.14b-stable.tar.gz
    # cd libevent-1.4.14b-stable
    # ./configure --prefix=/usr/local/libevent
    # make && make install

    # tar -xzf memcached-1.4.5.tar.gz
    # cd memcached-1.4.5
    # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
    # make && make install

    运行memcached守护程序
    # /usr/local/memcached/bin/memcached -d -m 128 -l 192.168.1.200 -p 11211 -u daemon
    或者
    # /usr/local/memcached/bin/memcached -d -m 128 -l 192.168.1.200 -p 11211 -u daemon -P /var/run/memcached.pid -c 1024 

   相关参数说明:
   -p memcached监听的TCP端口
   -l 监听的ip地址
   -d 以daemon方式运行,将程序放入后台
   -u memcached的运行用户,我设定的是nobody
   -P memcached的pid文件路径
   -m memcached可以使用的最大内存数量
   -c memcached同时可以接受的最大的连接数

   如果希望以socket方式访问memcached,在启动的时候需要去掉-l和-p参数,并加上-s参数:-s memcached的socket文件路径
   详细参数可以通过man memcached查看。

Memcache-php的安装:

  
   Memcache-php是众多PECL中的一种,下载地址:http://pecl.php.net/package/memcache
   PECL即PHP Extension Community Library的缩写,目的是提供PHP社群各种延伸函式库。

   PECL在linux中的安装分为以下几种:
   * 用PEAR编译共享PECL扩展库
   * 用phpize编译共享PECL扩展库
   * 将PECL扩展库静态编译入PHP
   详细参见:http://php.chinaunix.net/manual/zh/install.pecl.php。

 

   用phpize编译共享PECL扩展库:
   # tar vxzf memcache-2.0.4.tgz
   # cd memcache-2.0.4
   # /usr/local/php5/bin/phpize
   #./configure --with-php-config=/usr/local/php5/bin/php-config

   # make
   # make install
   提示:/usr/local/php//lib/php5/extensions/no-debug-non-zts-20060613

   然后修改php.ini
   把
   extension_dir = "./"
   修改为
   extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613"
   并添加一行
   extension=memcache.so

   将PECL静态编译入PHP:
   # tar xvf memcache-2.2.6.tgz
   # cd /usr/local/software/php-5.1.4/ext
   # mv /usr/local/software/memcache-2.2.6 ./memcache

   强制PHP重新生成配置脚本,然后正常编译PHP:
   # cd /usr/local/software/php-5.1.4
   # rm configure
   # ./buildconf --force
   # ./configure --help
   # ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/webserver/apache2/bin/apxs --with-config-file-path=/usr/local/php5/etc/ --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg6 --with-zlib-dir=/usr/local/lib --with-png-dir=/usr/local/libpng2 --with-freetype-dir=/usr/local/freetype --enable-soap --enable-gd-native-ttf --enable-ftp --enable-memcache
   # make && make instal
  
   Note1: 要运行“buildconf”脚本,需要autoconf2.13和automake1.4+(更新版本的 autoconf 也许能工作,但不被支持)。

   Note2: #buildconf --force可能导致配置文件无法生效,推荐使用第二种安装方法。


   $memcache = new Memcache;  
   $memcache->connect('192.168.1.200','11211');  
   $memcache->setCompressThreshold(20000, 0.2);    // 设置压缩  
   echo $memcache->getVersion();                   // 输出memcached版本  
 
   $test = array(1,2,3,4,5,'abcde');               //生成一个数组  
 
   if($memcache->get('test')){  
        print_r($memcache->get('test'));        //获取数据  
        echo "\n";  
        echo 'cached';  
        echo "\n";  
   }else{  
        $memcache->set('test',$test,0,30);      //写入数据  
        echo 'no cache';  
        echo "\n";  
   }
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值