小螞蟻學memcache筆記—php操做memcache(3)

上篇在學習$mem->set();的時候少寫了一個參數,第三個參數,MEMCACHE_COMPRESSED,這個參數的做用在於壓縮。php

memcache是獨立機構,是C/S結構。若是memcache滿了,LRU算法刪除,把最先沒有訪問過的拿掉。前端

memcache的分佈式  這裏是重點算法

在第二部中將connect這個方法改爲addserver(),在連接池中添加了一個memcache服務器。apache

例如 :緩存

$mem    ->    new Memcache();
$mem    ->    addServer('127.0.0.1',11211);    //增長連接池
$mem    ->    addServer('127.0.0.1',9999);     //增長連接池   
$mem    ->    get($key);
  1. memcached儘管是‘分佈式’緩存服務器,但服務器端並無分佈式功能。安全

  2. 各個memcache不會互相通訊以便信息共享。每一個memcache服務的數據不是同步的。服務器

  3. 並且把什麼樣的數據放入到哪個memcached是由客戶端的mem對象來決定的。session

  4. 當執行addServer的時候,並非當即去鏈接mem服務,而是經過計算,hash後纔去決定連接哪一臺mem服務,因此當大量加入服務到鏈接池,不會有多餘的開銷。tcp

memcache細節的研究分佈式

  1. 生命週期。從放入開始計時,時間到就自動銷燬。memcache被銷燬有如下幾種狀況。一,時間到。2、重啓memcache。三,重啓服務器。

如何將session放入到memcache中保存

  1. 修改php.ini配置文件

    1. session.save_handler=user    它有三個選項  user 表示自定義  files入庫保存到文件  memcache保存在內存

    2. 修改以下 將session.save_handler 改成 memcache

    3. 將 session.save_path=「tcp://127.0.0.1:11211」

    2.    重啓apache

注意:若是session數據存入memcache,那它必定是以session_id爲key值進行添加的。

若是之後作大型門戶網站,必定要把session寫入到memcache。(強烈建議)

若是沒法修改php.ini文件,能夠經過函數修改php.ini任何配置。能夠把如下兩句寫到腳本的前端

ini_set("session.sava_handler","memcache");
//函數的參數都是以減值對的形式存入
ini_set("session.save_path","tcp://127.0.0.1:9999");

safe_mode模式的談論

他們的最大區別就在於,安全模式一旦打開,對服務器上文件的操做幾乎失效。

ini_set()只會在很腳本起做用,不對其餘文件起做用。

相關文章
相關標籤/搜索