PHPモジュールmemcached使用マニュアル

2755 ワード

1.拡張パッケージの追加
    php_memcache.dll
2.PHP.INI追加
    extension=php_memcache.dll
3.プログラム
 
  
    // 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 "
";
    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 "
";
    if($mem->delete('key14')){
        echo 'key14 ';
    }else{
        echo 'key14 ';
    }


まとめ:
1.memサービスのデータは同期ではなく、データは分散されている
2.どのデータをどのmemcachedに入れるかはクライアントのmemオブジェクトによって決まる
3.addServerを実行するときは、すぐにmemサービスに接続するのではなく、hashを計算してどのmemサービスに接続するかを決定します.そのため、サーバを接続プールに大量に追加すると、余分なオーバーヘッドはありません.