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