內(nèi)存存儲(chǔ)方式(slab allocator) memcached的數(shù)據(jù)存儲(chǔ)方式為slab allocator即數(shù)據(jù)分片, 在服務(wù)啟動(dòng)的時(shí)候先把內(nèi)存分成不同大小的 chunk, 當(dāng)有數(shù)據(jù)過來的時(shí)候來存儲(chǔ)到一個(gè)合適大小的chunk當(dāng)中 之前版本是直接分配內(nèi)存, 導(dǎo)致內(nèi)存碎片 隨機(jī)查找等問題。。 數(shù)
內(nèi)存存儲(chǔ)方式(slab allocator)
memcached的數(shù)據(jù)存儲(chǔ)方式為slab allocator即數(shù)據(jù)分片, 在服務(wù)啟動(dòng)的時(shí)候先把內(nèi)存分成不同大小的 chunk, 當(dāng)有數(shù)據(jù)過來的時(shí)候來存儲(chǔ)到一個(gè)合適大小的chunk當(dāng)中
之前版本是直接分配內(nèi)存, 導(dǎo)致內(nèi)存碎片 隨機(jī)查找等問題。。
數(shù)據(jù)過期刪除機(jī)制
memcached在數(shù)據(jù)過期之后,并不會(huì)去刪除數(shù)據(jù), 但是不能訪問過期的數(shù)據(jù), 過期數(shù)據(jù)占用的空間會(huì)被重復(fù)利用
memcached采用lazy expiration.不會(huì)去主動(dòng)掃描一個(gè)數(shù)據(jù)項(xiàng)是否過期, 而是在數(shù)據(jù)get的時(shí)候判斷是否已經(jīng)過期.
刪除的算法是LRU(Least Recently Used) , 優(yōu)先刪除最近使用較少的數(shù)據(jù)
memcached的分布式機(jī)制
雖說memcached是一個(gè)分布式的緩存, 但是memcached本身并沒有實(shí)現(xiàn)任何分布式的機(jī)制, 分布式的功能主要是由客戶端來實(shí)現(xiàn)的。
程序通過addserver增加多個(gè)memcahced服務(wù)到客戶端(memcache擴(kuò)展), 在存取數(shù)據(jù)之前,客戶端會(huì)先通過hash算法得到存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn), 然后再去存取數(shù)據(jù), 當(dāng)其中一臺(tái)memcached服務(wù)器掛掉或者新增一臺(tái)memcached服務(wù)器, hash算法得到的存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)就會(huì)變化, 去新的服務(wù)器上去存取數(shù)據(jù)。
聲明: 本文采用 CC BY-NC-SA 3.0 協(xié)議進(jìn)行授權(quán)
轉(zhuǎn)載請(qǐng)注明來源:小景的博客
本文鏈接地址:http://www.phpv5.com/blog/something-about-memcached
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com