memcached 快取應用問題

2021-07-28 14:15:27 字數 742 閱讀 3219

快取穿透與快取雪崩

快取系統不得不考慮的另乙個問題是快取穿透與失效時的雪崩效應。快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。有很多種方法可以有效地解決快取穿透問題,最常見的則是採用布隆過濾器,將所有可能存在的資料雜湊到乙個足夠大的bitmap中,乙個一定不存在的資料會被 這個bitmap攔截掉,從而避免了對底層儲存系統的查詢壓力。在資料魔方裡,我們採用了乙個更為簡單粗暴的方法,如果乙個查詢返回的資料為空(不管是資料不存在,還是系統故障),我們仍然把這個空結果進行快取,但它的過期時間會很短,最長不超過五分鐘。

快取失效時的雪崩效應對底層系統的衝擊非常可怕。遺憾的是,這個問題目前並沒有很完美的解決方案。大多數系統設計者考慮用加鎖或者佇列的方式保證快取的單線 程(程序)寫,從而避免失效時大量的併發請求落到底層儲存系統上。在資料魔方中,我們設計的快取過期機制理論上能夠將各個客戶端的資料失效時間均勻地分布在時間軸上,一定程度上能夠避免快取同時失效帶來的雪崩效應。

永久資料被t現象

原因:由惰性刪除或者lru刪除機制導致。

如果slab裡很多chunk已經過期,但過期後沒有被get過,系統不知道他們已經過期;

永久資料很久沒有被get了,不活躍,如果新增item,則永久資料被t掉;

當然,如果那些非永久性資料被get,也會標識為expire,從而不會再踢掉永久資料。

解決方案:永久資料與非永久性資料分開放。

Memcached 快取體系

關於memcached的博文太多了,以下是個人學習的收集整理。本節討論問題 一 介紹與應用 關於memcached以下為摘自博文 客戶端的版本比較多,並且不能互用,因為採用了壓縮機制,日誌等功能,所以在選擇客戶端時要注意這些。a.windows下 直接使用memcached.exe 程式就可以了,也...

memcached快取架構優化

基本架構 web nginx php php fpm 9000 memcached mysql 安裝memcache工具包 yum install memcached y systemctl start memcached 安裝memcache原始碼包 tar zxf memcache 4.0.5....

memcached快取架構優化

安裝memcache工具包 yum install memcached y systemctl start memcached 安裝memcache原始碼包 tar zxf memcache 4.0.5.2.tar.gz這時切換至原始碼包沒有configure執行檔案需要執行phpize 執行之前需...