memcached工作原理
包括服務端和客戶端,以鍵值對的形式儲存。key根據乙個
hash
演算法得到乙個
hashkey
,根據這個值來確定選擇哪台伺服器儲存。客戶端根據
key的值用相同的方法計算出
hash
值,確定是哪個伺服器,然後進行連線,獲取
value值
快取策略
當服務端的hash
表滿了以後,新來的資料會替代老資料。
kv對儲存的有效時限是在客戶端用
設定並作為引數傳遞給
ms的。
memcached的記憶體管理
1.page固定大小為1mb 當slab class空間不足時,就會申請page,並將page按照chunk的大小切割。
2.slab class(板塊) memecached是以slab class為單位管理的,每個slab對應乙個或多個大小相同的chunk。每個slab class都有它自己的統計資訊以及自己的lru(最少用到的資料)。在啟動memcached時,指定-vv引數,可以在啟動日誌中檢視每個slab class的chunk大小。
3.chunk 用來存放key和value值。memcached會根據元素的大小來判斷存到哪個slab中,元素不一定能佔滿整個chunk,所以可能會存在空間剩餘
memecached有自己的記憶體管理,是為了防止系統記憶體碎片
記憶體的**
乙個新的資料進來時,如果該板塊已經存滿,而且page也已經用光。
memcached將會去檢查舊資料中失效的元素然後重用他的記憶體(前提是在同乙個板塊裡),如果沒有失效的元素,就檢查最近很少用的元素(lru),占用他的記憶體。memcached不會主動收回記憶體,失效的元素記憶體釋放,記憶體用光時才被再次使用
Memcached原理分析
memcached採用了名為slab allocation的機制分配,管理記憶體。slab allocation的原理相當簡單。將分配的記憶體分割成各種尺寸的塊 chucnk 並把尺寸相同的塊分成組 chucnk的集合 如圖 而且slab allocation還有重複使用已分配記憶體的目的。也就是說...
ThinkPHP MVC工作原理以及跳轉頁面
mvc分別代表 m model模型 對資料庫進行curd操作 v view檢視 與使用者進行互動,讓使用者進行的操作的介面 c controller控制器 後台對檢視或模型進行控制,比如呼叫模型的資料庫查詢方法返回結果,把結果傳輸給檢視,讓檢視顯示該資料 在控制器中預設的index方法 this d...
Ajax工作原理以及封裝使用
1 什麼是ajax?ajax 非同步程式設計的一種解決方案 是一種用於建立快速動態網頁的技術。通過後台與伺服器之間資料的少量交換,在不重新整理頁面的情況下,更新頁面部分的資料。2 工作原理?相當於在瀏覽器 客戶端 與伺服器之間增加了乙個中間層 ajax引擎 使使用者操作與伺服器響應非同步化,這樣就可...