Memcache函數庫是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的記憶體資料的臨時存放地區,在分布式的時候作用體現的非常明顯,否則不建議使用。本文將給大家介紹了關於利用php操作memcache緩衝的基礎方法,需要的朋友可以參考下。
前言
最近在工作中又遇到了memcache,大家應該都有所瞭解,memcache 是一個高效的分布式的記憶體對象緩衝系統,他可以支援把php的各種資料(數組,對象,基礎資料型別 (Elementary Data Type))放在它管理的記憶體中,本文將給大家詳細介紹關於php操作memcache緩衝的基礎方法,話不多說,來一起看看詳細的介紹吧。
1、代碼使用
<?php //串連 $mem = new Memcache; $mem->connect("127.0.0.1", 11211) or die ("Could not connect"); //顯示版本 $version = $mem->getVersion(); echo "Memcached Server version: ".$version."<br>"; //儲存資料 $mem->set('key1', 'This is first value', 0, 60); $val = $mem->get('key1'); echo "Get key1 value: " . $val ."<br>"; //替換資料 $mem->replace('key1', 'This is replace value', 0, 60); $val = $mem->get('key1'); echo "Get key1 value: " . $val . "<br>"; //儲存數組 $arr = array('aaa', 'bbb', 'ccc', 'ddd'); $mem->set('key2', $arr, 0, 60); $val2 = $mem->get('key2'); echo "Get key2 value: "; print_r($val2); echo "<br>"; //對數組進行序列化,在網路傳輸的時候,為了保證,資料類型的不丟失,先序列化,再發生. //$arr1=serialize($arr); $arr2=json_encode($arr1); print_r($arr2); //刪除資料 $mem->delete('key1'); $val = $mem->get('key1'); echo "Get key1 value: " . $val . "<br>"; //清除所有資料 $mem->flush(); $val2 = $mem->get('key2'); echo "Get key2 value: "; print_r($val2); echo "<br>"; //關閉串連 $mem->close(); ?>
2、函數庫詳解:
Memcache::add - 添加一個值,如果已經存在,則返回false
Memcache::addServer - 添加一個可供使用的伺服器位址
Memcache::close - 關閉一個Memcache對象
Memcache::connect - 建立一個Memcache對象
memcache_debug - 控制調試功能! [4 F8 C2 e, X
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 -對一個已有的key進行覆寫操作
Memcache::set - 添加一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold - 對大於某一大小的資料進行壓縮
Memcache::setServerParams - 在運行時修改伺服器的參數
3、分布式使用:
Memcache函數庫是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的記憶體資料的臨時存放地區,在分布式的時候作用體現的非常明顯
<?php //1.執行個體化一個Memcache對象 $mem=new Memcache(); //2. 串連到指定的memcache中 // $mem->connect("127.0.0.1",11211); //如果我們網站,需要多個memached緩衝系統,如下使用分布式 $mem->addServer("192.168.1.100",11211); $mem->addServer("192.168.1.200",11211); $mem->addServer("192.168.1.222",11211); //建立多個memcache服務使用addServer 會根據負載平衡演算法,自動放入每個伺服器 $mem->add("name","zs",0,100); ?>