安全高性能ウェブサイト構築(三)

2620 ワード

みんなを歓迎して私の宝を洗う店に来ます.クリックして入ります.
分散式mencacheの利用.
 
1 memcachedの配置とインストールは参照してください.http://blog.csdn.net/chanya/article/details/7742014
 
2 memcacheの仕事原理:
   memcached                     ,            ,            ,         API    Perl/PHP/Python/Ruby/Java/C#/C   。      memcached         ,             ,                   key,          key   ,    memcached               ,       cache     ,       memcached            。  ,          ,      ,         。

    cache     ,Memcached        。    C/S   ,  server        ,            ip,      ,               。    ,           。Memcached         C  ,      ,   ,  I/O,     (event_based)      .   libevent         。   Server       ,    Server             ,   Server             。Client       Server    ip   (         )。             key->value        Server 。key      hash     ,   hash    value             Server  。          ,    key   。    key    hash,                   Server  ,      Server     。Client          hash(key)              .
3 memcacheの常用方法:
Memcache::add —      ,      ,   false
Memcache::addServer —               
Memcache::close —     Memcache  
Memcache::connect —     Memcache  
memcache_debug —       
Memcache::decrement —       key         
Memcache::delete —     key 
Memcache::flush —          
Memcache::get —     key 
Memcache::getExtendedStats —                  
Memcache::getServerStatus —           
Memcache::getStats —               
Memcache::getVersion —      Memcache     
Memcache::increment —       key         
Memcache::pconnect —     Memcache       
Memcache::replace — R      key      
Memcache::set —      ,      ,   
Memcache::setCompressThreshold —               
Memcache::setServerParams —             
 
4 memcacheのzfフレーム内の一つの応用:
 public function indexAction()
    {
    	//  memcache  
    	$memcachehost = '192.168.1.83';
        $memcacheport = 11211;
        $memcachelife = 60;
        $memcache = new Memcache;
        $memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
    	$key=md5('Application_Model_MessageMapper_fetchAll');
    	if(!$memcache->get($key))
    	{
    		$message=new Application_Model_MessageMapper();
            $this->view->messages = $message->fetchAll();
    		$arr[]=$this->view->messages;
    		$memcache->add($key,serialize($arr),0,30);
    	}else
    	{
    		 $data_mem=$memcache->get($key);
             $this->view->messages = unserialize($data_mem);
    	}
    	 
        
    }