PHP模块memcached使用指南

1.添加扩展包

    php_memcache.dll

2.在PHP.INI添加

    extension=php_memcache.dll

3.程序


<?php

    //创建一个mem对象实例

    $mem=new Memcache;

    if(!$mem->connect("10.18.110.213",11211)){

        die('连接失败!');

    }

    //增加

    //1.增加一个字串

/*    if($mem->set('key1',"beijing",MEMCACHE_COMPRESSED,60)){

        echo '添加ok';

    }*/

    //2.添加数值

/*    if($mem->set('key1',100,MEMCACHE_COMPRESSED,60)){

        echo '添加ok';

    }*/

    //3.添加数组

    //在添加数组是,根据需要. 希望序列号放入  ,

    //serialize<=>unserialize, 如果根据需要,也可以json_encode <=> json_decode

    $arr=array("bj",'tj');

    if($mem->set('key1',$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){

        echo '添加数组ok99111';

    }

    //4.添加对象

/*    class Dog{

        public $name;

        public $age;

        public function __construct($name,$age){

            $this->name=$name;

            $this->age=$age;

        }

    }

    $dog1=new Dog('小狗',50);

    if($mem->set('key1',$dog1,MEMCACHE_COMPRESSED,60)){

        echo '添加对象ok';

    }*/

    //5.添加null 布尔值

/*    if($mem->set('key1',false,MEMCACHE_COMPRESSED,60)){

        echo '添加布尔ok';

    }*/

    //6. 资源类型放入.

/*    $con=mysql_connect("127.0.0.1","root","root");

    if(!$con){

        die('连接数据库失败');

    }

    var_dump($con);

    echo "<br/>";

    if($mem->set('key1',$con,MEMCACHE_COMPRESSED,60)){

        echo '添加资源ok';

    }*/

    //查询     $val=$mem->get('key1'); //修改     //可以使用replace     if($mem->replace("key11",'hello',MEMCACHE_COMPRESSED,60)){         echo 'replace ok';     }else{         echo 'replace no ok';     }

    //删除     echo "<br/>";     if($mem->delete('key14')){         echo 'key14 删除';     }else{         echo 'key14不存在';     }

总结:

1.      mem服务的数据不是同步的, 数据是分布的

2.      把什么数据放入到哪个memcached是由客户端的mem对象决定

3.      当执行addServer的时候,并不是立即去连接mem服务,而是通过计算,hash后才去决定连接哪个mem服务,因此当你大量加入服务器到连接池,没有多余开销