redis 與memcache

端口號

redis :6379        memcache:112111

使用PHP簡單操作Memcached

記得一定要先啓動Memcached哦!

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

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

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

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

$m = new Memcached();
  • 1

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

//傳入一臺服務器
$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());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

/*
 * add()
 * key代表加入緩存的key值
 * value代表加入緩存的value值
 * 600代表這條緩存的生效時間爲600秒,0代表永久生效
 */
$m->add('key','value',600);
/*
 * get()
 * 通過key值來獲取緩存
 */
echo "緩存key值:".$m->get('key);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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

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

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

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

這樣當我們再次get(‘key’)的時候就會獲取到value11了。 
5.set()方法 
set()方法其實就集成了add方法和replace方法,如果set的key值是不存在的,它就相當於add方法,如果set的key值已經存在了,它就相當於replace方法,所以一般的時候set方法纔是最常用的方法。

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

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

/*
 * delete()
 * 傳入一條緩存的key
 */
$m->delete('key');
  • 1
  • 2
  • 3
  • 4
  • 5

加入我上面添加的緩存失效時間還沒有到,執行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');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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


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

//首先定義要存入緩存的數組
$data = array(
    'key1'=>'value1',
    'key2'=>'value2'
);
/*
 * setMulti()
 * 第一個參數代表傳入的數組,第二個參數代表生效時間,0代表永久
 */
$m->setMulti($data,0);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

//定義獲取緩存的key值得數組
$get = array('key1','key2');
/*
 * getMulti()
 * 傳入需要獲取緩存的key值
 */
$result = $m->getMulti($get);
var_dump($result);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

這裏寫圖片描述

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

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

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

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

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

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

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


發佈了20 篇原創文章 · 獲贊 21 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章