使用PHP簡單操做Memcached

基本函數:php

Memcache — Memcache類
Memcache::add — 增長一個條目到緩存服務器
Memcache::addServer — 向鏈接池中添加一個memcache服務器
Memcache::close — 關閉memcache鏈接
Memcache::connect — 打開一個memcached服務端鏈接
Memcache::decrement — 減少key的值
Memcache::delete — 從服務端刪除一個key
Memcache::flush — 清洗(刪除)已經存儲的全部的key
Memcache::get — 從服務端檢回一個key
Memcache::getExtendedStats — 緩存服務器池中全部服務器統計信息
Memcache::getServerStatus — 用於獲取一個服務器的在線/離線狀態
Memcache::getStats — 獲取服務器統計信息
Memcache::getVersion — 返回服務器版本信息
Memcache::increment — 增長一個key的值
Memcache::pconnect — 打開一個到服務器的持久化鏈接
Memcache::replace — 替換已經存在的key的值
Memcache::set — 儲存值,沒有會新增一個key,已經存在的key直接替換
Memcache::setCompressThreshold — 開啓大值自動壓縮
Memcache::setServerParams — 運行時修改服務器參數和狀態數組

Memcache 函數
memcache_debug — 轉換調試輸出的開/關緩存

Memcache模塊同時提供了一個session 處理器 :php使用memcache來存儲session服務器

 

記得必定要先啓動Memcached哦!session

[root@localhost ~]# /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root

使用ps命令查看一下運行狀態:memcached

[root@localhost ~]# ps -ef | grep memcached

這裏寫圖片描述
顯示運行成功!
接下來就開始使用PHP操做Memcached啦!
1.建立一個Memcached對象函數

$m = new Memcached();

2.傳入一臺或多臺服務器spa

//傳入一臺服務器 
$m->addServer('127.0.0.1','11211'); 
//傳入多臺服務器 
$servers = array( array('127.0.0.1','11211'), array('127.0.0.2','11211') ); $m->addServers($servers); 
//查看一下運行狀態 
print_r($m->getStats());

這裏寫圖片描述
由於傳入的第二臺服務器是不存在的,因此沒法獲取到正確的信息。
也可使用getVersion()來直接獲取memcached的版本信息。
3.add()方法和get()方法.net

/* 
* add() 
* key表明加入緩存的key值 
* value表明加入緩存的value值 
* 600表明這條緩存的生效時間爲600秒,0表明永久生效 
*/ 
$m->add('key','value',600); 
/* 
* get() 
* 經過key值來獲取緩存 
*/ 
echo "緩存key值:".$m->get('key);

這裏寫圖片描述
若是我在第一個add()方法下面再添加一個:debug

$m->add('key','value1',600);

其實這樣是不會覆蓋掉前面的值得,若是想要覆蓋的話可使用replace()方法
4.replace()方法

$m->add('key','value',600); 
$m->replace('key','value11',600);

這樣當咱們再次get(‘key’)的時候就會獲取到value11了。
5.set()方法
set()方法其實就集成了add方法和replace方法,若是set的key值是不存在的,它就至關於add方法,若是set的key值已經存在了,它就至關於replace方法,因此通常的時候set方法纔是最經常使用的方法。

$m->set('key','value',600);

6.delete()方法
刪除緩存的方法,使用方法:

/* 
* delete() 
* 傳入一條緩存的key 
*/ 
$m->delete('key');

加入我上面添加的緩存失效時間尚未到,執行delete方法後,咱們依然沒法獲取到這條緩存了。
7.flush()方法
直接清除掉全部的緩存!(慎用!!!)
8.increment()方法
加法操做,使用方法:

//設置一條key值爲num,value爲5,永久生效的緩存 
$m->set('num',5,0); 
//沒刷新一次頁面key值爲num的緩存value加5 
$m->increment('num',5); 
//輸出這條緩存 
echo $m->get('num');

9.decrement()方法
和increment()方法類似,只是變成了減法,具體使用方法和increment()方法同樣。

更加優雅的使用Memcached方法
10.setMulti()方法
若是一直按照前面的方法進行set緩存的話,一條一條存入是很慢的,因此Memcached爲咱們提供給了setMulti()方法,使用方法以下:

//首先定義要存入緩存的數組 
$data = array( 'key1'=>'value1', 'key2'=>'value2' ); 
/* 
* setMulti() 
* 第一個參數表明傳入的數組,第二個參數表明生效時間,0表明永久 
*/ 
$m->setMulti($data,0);

11.getMulti()方法
一樣獲取緩存也能夠一次獲取多條緩存,使用方法以下:

//定義獲取緩存的key值得數組 
$get = array('key1','key2'); 
/* 
* getMulti() 
* 傳入須要獲取緩存的key值 
*/ 
$result = $m->getMulti($get); 
var_dump($result);

這裏寫圖片描述

12.deleteMulti()方法
和getMulti()方法相似,不過是刪除緩存,使用方法以下:

$delete = array('key1','key2'); 
$m->deleteMulti($delete);

這時key值爲key1和key2的緩存就被刪除掉了。
13.getResultCode()方法
當我執行完一個操做以後可使用這個方法來查看執行的狀況,使用方法以下:

//剛纔我執行了deleteMulti()方法,這時候我可使用getResultCode()方法來查看操做是否成功 
echo $m->getResultCode();

當正確執行時會放回0;
更多狀態碼請點擊:更多狀態碼
14.getResultMessage()方法
和getResultCode()方法的區別是,getResultCode()是返回狀態碼,getResultMessage()方法是返回具體信息。使用方法以下:

//上面執行deleteMulti()方法 
$m->getResultMessage();

這是回返回一個SUCCESS的信息,告訴咱們操做成功了,具體的返回信息參考上面的更多狀態碼連接!

相關文章
相關標籤/搜索