資料內容:
1、作為數據庫的前端緩存應用
完整緩存(易),靜態(tài)緩存,例如:商品分類(京東),以及商品信息,可事先放在內存里,然后再對
外提供數據訪問,這種先放到內存,我們稱之為預熱,(先把數據存緩存中),用戶訪問時可以只讀取
memcached)緩存,不讀取數據庫了。
執(zhí)點緩存(難),需要前端web程序配合,只緩存熱點的數據,即緩存經常被訪問的數據。先預熱數據
庫里的基礎數據,然后在動態(tài)更新,選讀取緩存,如果緩存里沒有對應的數據,程序再去讀取數據庫,
然后程序把讀取的新數據放入緩存存儲。
特殊說明 :
如果碰到電商秒殺等高并發(fā)的業(yè)務,一定要事先預熱,或者其它思想實現,例如:稱殺只是獲取資格,
而不是瞬間秒殺到手商品。那么什么是獲取資格?就是在數據庫中,把0標成1.就有資格啦。再慢慢的
去領取商品訂單。因為秒殺過程太長會占用服務器資源。
如果數據更新,同時觸發(fā)緩存更新,防止給用戶過期數據。
對于持久化緩存存儲系統(tǒng),例如:redis,可以替代一部分數據庫的存儲,一些簡單的數據業(yè)務,投
票,統(tǒng)計,好友關注,商品分類等。nosql= not only sql
2、作業(yè)集群的session會話共享存儲
3、Memcached服務在不同企業(yè)業(yè)務應用場景中的工作流程
當web程序需要訪問后端數據庫獲取數據時會優(yōu)先訪問Memcached內存緩存,如果緩存中有數據就直
接獲取返回前端服務及用戶,如果沒有數據(沒有命中),在由程序請求后端的數據庫服務器,獲取到
對應的數據后,除了返回給前端服務及用戶數據外,還會把數據放到Memcached內存中進行緩存,等
待下次請求被訪問,Memcache內存始終是數據庫的擋箭牌,從而大大的減輕數據庫的訪問壓力,提高
整個網站架構的響應速度,提升了用戶體驗。
當程序更新,修改或刪除數據庫中已有的數據時,會同時發(fā)送請求通知Memcached已經緩存的同一個
ID內容的舊數據失效,從而保證Memcache中數據和數據庫中的數據一致。
如果在高并發(fā)場合,除了通知Memcached過程的緩存失效外,還會通過相關機制,使得在用戶訪問新
數據前,通過程序預先把更新過的數據推送到memcache中緩存起來,這樣可以減少數據庫的訪問壓
力,提升Memcached中緩存命中率。
數據庫插件可以再寫入更新數據庫后,自動拋給MC緩存起來,自身不Cache.