1. 程式人生 > >php操作memcache快取基礎方法

php操作memcache快取基礎方法

memcache 是一個高效的分散式的記憶體物件快取系統,他可以支援把php的各種資料(陣列,物件,基本資料型別)放在它管理的記憶體中

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);
	
?>