Memcache是一個(gè)自由、源碼開放、高性能、分布式的分布式內(nèi)存對象緩存系統(tǒng),該系統(tǒng)可以提升網(wǎng)站的訪問速度,尤其對于一些大型的、需要頻繁訪問數(shù)據(jù)庫的網(wǎng)站訪問速度提升效果十分顯著。
為什么要使用Memcache?
主要用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫的負(fù)載。
它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),
從而提高了網(wǎng)站訪問的速度。
Memcache的實(shí)現(xiàn)原理
memcache處理的原子是每一個(gè)key、val,key會通過一個(gè)hash表轉(zhuǎn)換成hash的key,便于查找對比以及竟可能的做到散列。同時(shí)mem用的是一個(gè)二級散列,通過一個(gè)hash表來維護(hù)。
memcache有兩個(gè)核心組件:服務(wù)端和客戶端
在一個(gè)memcache組件查詢中,client先通過key的hash值來確定kv在service端的位置,當(dāng)server端確定后,客戶端就會發(fā)一個(gè)請求個(gè)server端。讓它來查找出確切數(shù)據(jù),因?yàn)檫@之間沒有交互以及多播協(xié)議,因此mem帶給網(wǎng)絡(luò)的影響最小
Memcache特性和限制
在 Memcached中可以保存的item數(shù)據(jù)量是沒有限制的,只要內(nèi)存足夠 。
Memcached單進(jìn)程在32位系統(tǒng)中最大使用內(nèi)存為2G,若在64位系統(tǒng)則沒有限制,這是由于32位系統(tǒng)限制單進(jìn)程最多可使用2G內(nèi)存,要使用