什么是Memcached
Memcached是國外社區(qū)網(wǎng)站LiveJournal的開發(fā)團隊開發(fā)的高性能分布式內(nèi)存緩存服務(wù)器休蟹。一般的使用目的是疑苫,通過緩存數(shù)據(jù)庫查詢結(jié)果脂矫,減少數(shù)據(jù)庫訪問次數(shù),以提高動態(tài)Web應(yīng)用的速度障涯,提高可擴展性宪躯。
Memcached 運行圖
誰在用Memcached
國外:Yahoo, facebook, twitter, wiki等
國內(nèi):新浪網(wǎng)乔宿,豆瓣網(wǎng),開心網(wǎng)访雪,搜狐详瑞,趕集網(wǎng)等
Memcached 特點
基于C/S架構(gòu),協(xié)議簡單
基于libevent的事件處理機制
自主內(nèi)存存儲處理
基于客戶端的Memcached分布式
自主內(nèi)存存儲方式
數(shù)據(jù)存儲方式:Slab Allocation
數(shù)據(jù)過期方式:Lazy Expiration + LRU
Slab Allocation
Lazy Expiration
Memcached內(nèi)部不會監(jiān)視記錄是否過期臣缀,而是在get時查看記錄的時間戳坝橡,檢查記錄是否過期。這種技術(shù)成為lazy expiration精置。Memcached不會在過期監(jiān)視上浪費CPU時間计寇。
LRU
Memcached會優(yōu)先使用已超時的記錄空間,但即使如此脂倦,也會發(fā)生追加新紀錄時空間不足的情況番宁。這時需要使用Least Recently Used(LRU)機制,刪除最近最少使用的記錄方式來分配空間赖阻。
基于客戶端的Memcached分布式