首頁 >後端開發 >php教程 >php進行memcache快取操作

php進行memcache快取操作

巴扎黑
巴扎黑原創
2017-08-06 16:05:531239瀏覽

Memcache函數庫是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的記憶體資料的暫時存放區域,在分散式的時候作用體現的非常明顯,否則不建議使用。本文將為大家介紹了利用php操作memcache快取的基礎方法,需要的朋友可以參考下。

前言

最近在工作中又遇到了memcache,大家應該都有所了解,memcache 是一個高效的分散式的內存物件快取系統,他可以支援把php的各種資料(數組,對象,基本資料型別)放在它所管理的記憶體中,這篇文章將給大家詳細介紹關於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(&#39;key1&#39;, &#39;This is first value&#39;, 0, 60); 
 $val = $mem->get(&#39;key1&#39;); 
 echo "Get key1 value: " . $val ."<br>"; 
 //替换数据 
 $mem->replace(&#39;key1&#39;, &#39;This is replace value&#39;, 0, 60); 
 $val = $mem->get(&#39;key1&#39;); 
 echo "Get key1 value: " . $val . "<br>"; 
 //保存数组 
 $arr = array(&#39;aaa&#39;, &#39;bbb&#39;, &#39;ccc&#39;, &#39;ddd&#39;); 
 $mem->set(&#39;key2&#39;, $arr, 0, 60); 
 $val2 = $mem->get(&#39;key2&#39;); 
 echo "Get key2 value: "; 
 print_r($val2); 
 echo "<br>"; 
 
 //对数组进行序列化,在网络传输的时候,为了保证,数据类型的不丢失,先序列化,再发生. 
 //$arr1=serialize($arr); 
 $arr2=json_encode($arr1); 
 print_r($arr2); 
 
 //删除数据 
 $mem->delete(&#39;key1&#39;); 
 $val = $mem->get(&#39;key1&#39;); 
 echo "Get key1 value: " . $val . "<br>"; 
 //清除所有数据 
 $mem->flush(); 
 $val2 = $mem->get(&#39;key2&#39;); 
 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); 
 
?>

以上是php進行memcache快取操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn