memcached php-memcache 的安装及使用

一.Linux 下安装

    1. 首先是下载 memcached 了,目前最新版本是 1.2.1,直接从官方网站即可下载到 memcached-1.2.1.tar.gz 。
            除此之外,memcached 用到了 libevent ,我下载的 是 libevent-1.3a.tar.gz。
            memcached官方版本下载地址:http://www.danga.com/memcached/ 
            libevent官方版本下载地址:http://monkey.org/%7Eprovos/libevent/ 
    2. 接下来是分别将 libevent-1.3a.tar.gz 和 memcached-1.2.1.tar.gz 解开包、编译、安装:
            我安装memcached 在 /usr/bin/memcached位置。

代码:

           # tar -xzf libevent-1.3a.tar.gz
           # cd libevent-1.3a
           # ./configure --prefix=/usr
           # make
           # make install
           # cd ..
           # tar -xzf memcached-1.2.1.tar.gz
           # cd memcached-1.2.1
           # ./configure --prefix=/usr
           # make
           # make install

NOTE: 如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.2a.so.1 拷贝/链接(ls -s/usr/local/lib/libevent-1.1.so.1 /usr/lib)到 /usr/lib 中,否则memcached 无法正常加载。运行以下命令来启动 memcached。
    3. 运行 memcached 守护程序
            运行 memcached 守护程序很简单,只需一个命令行即可,不需要修改任何配置文件(也没有配置文件给你修改           ):
            #/usr/bin/memcached -d -m128 -l 192.168.1.117 -p 11211 -u nobody

代码:

          /usr/bin/memcached -d -m 128 -l192.168.1.117 -p 11211 -u httpd

           参数解释:

           -d 以守护程序(daemon)方式运行 memcached;

           -m 设置 memcached 可以使用的内存大小,单位为 M;

           -l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;

           -p 设置监听的端口,默认为 11211,所以也可以不设置此参数;

           -u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。

当然,还有其它参数可以用,man memcached 一下就可以看到了。
    4. 编译PHP configure加上 –enable-memcache[=DIR] 选项。我以前都是静态安装 PHP模块,此次 安装memcache PHP模块采用动态模块(DSO)方式
          memcache PHP模块下载地址:http://pecl.php .net/package/memcache

代码:

         # tar -vxzf memcache-1.5.tgz
         # cd memcache-1.5
         # /usr/local/php/bin/phpize
         # ./configure--enable-memcache--with-php-config=/usr/local/php/bin/php-config--with-zlib-dir
         # make
         # make install

安装完后会有类似这样的提示:
          Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
          把这个记住
          然后修改php.ini
          把
          extension_dir = "./"
          修改为
          extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
          并添加一行
          extension=memcache.so


二. Windows 下安装
              1. 下载memcache的windows版,解压放在E:\soft\memcached-1.2.1-win32
                 NOTE: memcached Windows版本下载地址:http://jehiah.cz/projects/memcached-win32/ 
              2. 在终端下输入 'E:\soft\memcached-1.2.1-win32\memcached.exe-d install' 安装
              3. 在终端下输入'E:\soft\memcached-1.2.1-win32\memcached.exe -d start' 启动
                 NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。
              4           Use the server, by defaultlistening to port 11211
              5. 下载pecl的模块包,解压缩后将其中的 php_memcache.dll考到D:\php\ext 中
                 NOTE: php和pecl的版本要一致。
              6. 在C:\WINDOWS\php.ini 加入一行'extension=php_memcache.dll'


三. 使用方法:

见PHP手册Memcache Functions

 

代码:

文件名称:e:/webroot/example.php

<?php
 
   $memcache = new Memcache;
   $memcache->connect('localhost', 11211) or die ("Could notconnect");
   $version = $memcache->getVersion();
   echo "Server's version: ".$version."\n";
   /**
   * 原来就是基类。很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一个自己的类。
   * 这个基类只能传递属性,而不能定义方法。因为,一旦类被实列化以后,就不能在添加方法了。
   * 再说的明白一点,这个stdClass就类似于C++里面的structur。
   * 你可以用它来存储很多变量属性,但是没有方法。就是这样。
   * stdClass is a default PHP object.
   */
   $tmp_object = new stdClass;
   $tmp_object->str_attr = 'test';
   $tmp_object->int_attr = 123;
   $memcache->set('key', $tmp_object, false, 10) or die ("Failed tosave data at the server");
   echo "Store data in the cache (data will expire in 10seconds)\n";
   $get_result = $memcache->get('key');
   echo "Data from the cache:\n";
var_dump($get_result);
 
?>

Functions of memcache:
Memcache::add - Add an item to the server
Memcache::addServer - Add a memcached server to connection pool
Memcache::close - Close memcached server connection
Memcache::connect - Open memcached server connection
memcache_debug - Turn debug output on/off
Memcache::decrement - Decrement item's value
Memcache::delete - Delete item from the server
Memcache::flush - Flush all existing items at the server
Memcache::get - Retrieve item from the server
Memcache::getExtendedStats - Get statistics from all servers in pool
Memcache::getStats - Get statistics of the server
Memcache::getVersion - Return version of the server
Memcache::increment - Increment item's value
Memcache::pconnect - Open memcached server persistent connection
Memcache::replace - Replace value of the existing item
Memcache::set - Store data at the server
Memcache::setCompressThreshold - Enable automatic compression of large values

 

memcached的基本设置: 
-p 监听的端口 
-l 连接的IP地址, 默认是本机 
-d start 启动memcached服务 
-d restart 重起memcached服务 
-d stop|shutdown 关闭正在运行的memcached服务 
-d install 安装memcached服务 
-d uninstall 卸载memcached服务 
-u 以的身份运行 (仅在以root运行的时候有效) 
-m 最大内存使用,单位MB。默认64MB 
-M 内存耗尽时返回错误,而不是删除项 
-c 最大同时连接数,默认是1024 
-f 块大小增长因子,默认是1.25 
-n 最小分配空间,key+value+flags默认是48 
-h 显示帮助 
Memcache环境测试: 
运行下面的php文件,如果有输出This is a test cache!,就表示环境搭建成功。开始领略Memcache的魅力把! 

<?php 
$mem = new Memcache(); 
$mem->addserver("127.0.0.1", 11211); 
$mem->set("mykey", "This is atest cache!", 0, 60); 
$val = $mem->get("mykey"); 
echo $val; 
?> 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值