本篇文章主要跟大家介紹Memcached的工作原理。
Memcached處理的原子是每一個(key,value)對(以下簡稱kv對),key會透過一個hash演算法轉換成hash-key,便於查找、對比以及做到盡可能的雜湊。同時,memcached用的是一個二級雜湊,透過一張大hash表來維護。
Memcached有兩個核心元件組成:伺服器端(server)和客戶端(client),在一個memcached的查詢中,client先透過計算key的hash值來確定kv對所處在的server位置。當server確定後,客戶端就會傳送一個查詢請求給對應的server,讓它來尋找確切的資料。因為這之間沒有互動以及多播協議,所以memcached互動帶給網路的影響是最小化的。
舉例說明:考慮以下這個場景,有三個client分別是c1,c2,c3,還有三個ms分別是s1,s2,s3:
設定kv對
c1想設定key=”com”,value=”iQiyi”
c1拿到server列表,並對key做hash轉化,根據hash值確定kv對所存的server位置
s2被選中了
c1連接上s2,s2收到請求,把(key=”com”,value=”iQiyi”)存了起來
獲取kv對
c3想得到key=”com”的value
c3用相同的hash演算法算出hash值,確定key=”aa」的值存在s2上
c3連接上s2,並從s2那邊得到value=”iQiyi”
其他任何從c1,c2 ,c3的想得到key=”com」的值的請求都會發向s2
想學習更多Memcached相關知識,可關注PHP中文網的Memcached視頻教程 或 Memcached手冊 。
以上是Memcached的工作原理是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!