通過Cache::Memcached方式 例項物件應用

nginx_web發表於2012-06-10

 

 

新建立一個客戶端連線物件使用new來完成,例如:

 

$memd = new Cache::Memcached  ($params);

 

    建立一個新的客戶端物件,在這裡可以設定伺服器連線,即‘servers’,當然也可以使用set_servers方法來設定。我們先看以下例子:

   

$memd = new Cache::Memcached {

    'servers' => [ "10.0.0.15:11211", "10.0.0.15:11212",

 "/var/sock/memcached",

                   "10.0.0.17:11211", [ "10.0.0.17:11211", 3 ] ],

    'debug' => 0,

    'compress_threshold' => 10_000,

  };

   

server的設定 它是以陣列的形式實現的,陣列中的值可以是TCP套接字,即“IP:埠”的形式,例如,"10.0.0.15:11211",如果沒有知道埠,那麼將會使用預設的埠號,即11211.也可以使用Unix套接字的形式,例如, "/var/sock/memcached"。另外,我們還注意到[ "10.0.0.17:11211", 3 ]這個格式,在這個格式中最後的“3”是一個加權值,如果沒有指定,那麼預設的值就是1。推薦使用僅可能低的值,因為這個模組當前分配記憶體時採用的所有Memcached伺服器中的權重然後按比例分配。

 

    'debug' => 0,  它的值有01之選,如果設定為0,那麼將會關閉除錯資訊,如果設定為1,則會開啟除錯資訊。

 

    'compress_threshold' => 10_000,  直接的稱呼可以叫做它“壓縮門限值”,該選項就是用於設定一個門限值,一旦儲存的value超過這個大小,那麼將會對儲存的value進行壓縮,它的單位是位元組。在通過get操作讀取時會再次進行解壓。當然,這個值在例項化之後還是可以通過函式改變的,不是這裡一旦設定完成就會一成不變的,具體的做法是通過set_compress_threshold()來改變。

 

    另外,還可以設定以下選項。

 

no_rehash 如果將它的值設定為1,即’no_rehash’=>0,那麼當一臺Memcached伺服器出了問題,比如當機或者是其它的問題,那麼該客戶端例項不會嘗試尋求其它的Memcached伺服器,相反,如果設定為0,那麼在出現問題時將會需求其它的Memcached伺服器。

 

readonly  如果將該選項的值設定為1,那麼這個客戶端例項只能從Memcached伺服器中讀取資料,而不能夠想其中寫入資料,如果設定為0,那麼則是可讀、可寫。這個選項在一定意義上非常有用。

 

    namespace  按照程式設計或者Linux的術語應該叫它名稱空間,它的功能也大概確實如此,如果設定了該項,那麼快取中所有的key前都有這個設定的值,例如,我們將名稱空間設定為"app1:",那麼如果設定一組key-value"foo" "bar",在Memcached伺服器中最終實際是"app1:foo" "bar"

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732401/,如需轉載,請註明出處,否則將追究法律責任。

相關文章