Memcache和mysql交互流程操作原理說明

對於大型網站如facebook,ebay等網站,如果沒有Memcache做爲中間緩存層,數據訪問不可能吃得消,對於一般網站,只要具備獨立的服務器,完全可以通過配置Memcache提高網站訪問速度和減少數據庫壓力,這裏主要討論一下Memcache和MySQL 數據庫交互過程的流程關係,瞭解Memcache的中間緩存層作用,從而深入瞭解Memcache機制原理。

Memcache和MySQL交互流程圖

如上圖,傳統的查詢方法是直接查詢數據庫,數據庫將結果返回給查詢語句,而當有Memcache中間緩存層時,查詢的是Memcache緩存數據,下面詳細瞭解Memcache各類數據操作原理:

1,查詢數據(select),首先通過指定的Key查詢 (get)Memcache中間緩存層數據,如果存在相對應數據,則直接獲取出數據結果,查詢過程完全不需要查詢數據庫。如果不存在,則查詢MySQL數 據庫,並以key對應value的形式將查詢結果存儲在Memcache緩存數據中,然後將結果返回給查詢語句。

2,更新數據(update),首先更新數據,然後刪除相關的memcache數據(delete)。

3,增加數據(add),首先刪除相關緩存數據,然後增加數據。

4,刪除數據(delete),刪除數據,並刪除Memcache數據。

對MySQL的數據操作,主要涉及到的Memcache方法如下:

1,獲取:get(key)
2,設置:set(key, value [, expiry])
3,刪除:delete(key [, time])

實例:
假設一個貼子,獲取貼子ID爲2009的值,其Memcache與MySQL交互流程如下:

$key = 'biuuu_thread_';//key前綴
$cachetime = 100;//緩存有效時間(秒)
$id = 2009;

Memcache基本操作過程
1,查詢:$result = get($key.$id);如果$result爲空,則查詢MySQL數據庫,然後set($key.$id,$value,0,$cachetime)
2,更新:update($key.$id);
3,增加:add($key.$id);
4,刪除:delete($key.$id);

通過直觀圖和實例應該對Memcache與MySQL的交互有一個基礎的掌握,其實對於應用來說,基本上就已經足夠,但如果要涉及到命名空間等相對複雜的情況,Memcache的操作方式會有所不同,但不管什麼樣的操作,還是離不開基礎操作命令,由於這是Memcache基礎篇,主要是討論 Memcache和mysql交互操作流程,當Memcache原理清楚以後,Memcache基本操作就是這麼簡單。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章