1. 程式人生 > >簡述memcache的理解和工作原理

簡述memcache的理解和工作原理

Memcached:是快取在記憶體中,也就是說伺服器重啟之後就會消失。

Memcached是高效能的分散式記憶體物件快取系統,用於web應用以減輕資料庫的負載,它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提供動態、資料庫驅動網站的速度。

Memcached基於一個儲存鍵/值對的hashmap。


who在用memcached:
國外:yahoo,facebook.twitter,
國內:新浪,校內,豆瓣,開心網,搜狐,趕集

在web服務開發中,服務端快取是服務實現過程常常採用的一種提高服務效能的方法,其通過記錄某部分計算結果來避免再次執行得到該結果的複雜計算,從而提高提高了服務的
執行效率,還能用提高服務的擴充套件性。因此一些大規模的web應用,如facebook,會常常構建一個龐大的服務端快取,而它們所最常使用就是Memcached

一個簡單的例子:
大家應該都應該玩過網路遊戲,而在遊戲中會有一個天梯系統,其主要的功能就是為玩家提供每位玩家的排名資訊,而不允許玩家對該系統中所記錄的資料進行修改,所以說,讀
操作大於寫操作,一個遊戲每天的線上人數常常會達到上萬人,因此會對天梯系統的訪問是非常頻繁的,這樣會使一個非常消耗效能的事情。因此自然而然的一個想法就是對天梯玩家排名以後
記錄到快取中,這樣每一位玩家再次訪問的時候就訪問快取中的資料。而在一段時間以後,如一個小時後,我們在對快取中的資料進行更新。以上所說的就是服務端快取的最重要功能。


Memcahce 是把所有的資料儲存在記憶體當中,採用 hash 表的方式,每條資料由 key 和 value 組成,每個 key 是獨一無二的,當要訪問某個值的時候先按照找到KEY,然後返回結果。
Memcahce 採用 LRU 演算法來逐漸把過期資料清除掉。