亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Memcached 分布式緩存實現原理簡介

2024-09-01 13:47:58
字體:
來源:轉載
供稿:網友

摘要

在高并發環境下,大量的讀、寫請求涌向數據庫,此時磁盤IO將成為瓶頸,從而導致過高的響應延遲,因此緩存應運而生。無論是單機緩存還是分布式緩存都有其適應場景和優缺點,當今存在的緩存產品也是數不勝數,最常見的有redis和memcached等,既然是分布式,那么他們是怎么實現分布式的呢?本文主要介紹分布式緩存服務mencached的分布式實現原理。
緩存本質

計算機體系緩存

什么是緩存,我們先看看計算機體系結構中的存儲體系,根據馮·諾依曼計算機體系結構模型,計算機分為五大部分:運算器、控制器、存儲器、輸入設備、輸出設備。結合現代計算機,CPU包含運算器和控制器兩個部分,CPU負責計算,其需要的數據由存儲提供,存儲分為幾個級別,就拿我當前的PC舉個例子,我的機器存儲清單如下:

    1.356G的磁盤
    2.4G的內存
    3.3MB三級緩存
    4.256KB二級緩存(pre core)

除了上述部分,還有CPU內的寄存器,當然有的計算機還有一級緩存等。CPU運算器工作的時候需要數據,數據哪里來?首先從距離CPU最近的二級緩存去拿,這塊緩存速度最快,通常也是體積最小,因為價格最貴:

Memcached,分布式,緩存

存儲金字塔

如上圖所示,存儲體系就像個金子塔,最上層最快,價格最貴,最下層最慢,價格也最便宜,CPU的數據源優先級一層層從上到下去尋找數據。

很顯然,除了最慢的那塊存儲,在計算機體系中,相對較快的那些存儲都可以被稱為緩存,他們解決的問題是讓存儲訪問更快。

緩存應用系統

計算機體系存儲系統模型擴展到應用也是一樣,應用需要數據,數據哪里來?緩存(更快的存儲)->DB(較慢的存儲),他們的工作流程大致如下圖所示:

Memcached,分布式,緩存

帶緩存的存儲訪問一般模型

如上圖所示,緩存應用系統一般存儲訪問流程:首先訪問緩存較快的存儲介質,如果命中且未失效則返回內容,如果未命中或失效則訪問較慢的存儲介質將內容返回同時更新緩存。

memcached簡介

什么是memcached

memcached是LiveJournal旗下的Danga Interactive公司的Brad Fitzpatric為首開發的一款軟件?,F在已經成為mixi、hatena、Facebook、Vox、LiveJournal等眾多服務中提高Web應用擴展性的重要因素。傳統的Web應用都將數據保存到RDBMS中,應用服務器從RDBMS中讀取數據、處理數據并在瀏覽器中顯示。但是隨著數據量增大、訪問的集中、就會出現RDBMS的負擔加重、數據庫響應變慢、導致整個系統響應延遲增加。

而memcached就是為了解決這個問題而出現的,memcached是一款高性能的分布式內存緩存服務器,一般目的是為了通過緩存數據庫的查詢命中減少數據庫壓力、提高應用響應速度、提高可擴展性。

Memcached,分布式,緩存

memcached緩存應用

memcached緩存特點

    1.協議簡單
    2.基于libevent的事件處理
    3.內置內存存儲方式
    4.memcached不相互通信的分布式

memcached分布式原理

今天的內容主要涉及memcached特點的第四條,memcached不相互通信,那么memcached是如何實現分布式的呢?memcached的分布式實現主要依賴客戶端的實現:

Memcached,分布式,緩存

memcached分布式

如上圖所示,我們看下緩存的存儲的一般流程:

當數據到達客戶端,客戶端實現的算法就會根據“鍵”來決定保存的memcached服務器,服務器選定后,命令他保存數據。取的時候也一樣,客戶端根據“鍵”選擇服務器,使用保存時候的相同算法就能保證選中和存的時候相同的服務器。

余數計算分散法

余數計算分散法是memcached標準的memcached分布式方法,算法如下:

 

復制代碼 代碼如下:
CRC($key)%N

 

該算法下,客戶端首先根據key來計算CRC,然后結果對服務器數進行取模得到memcached服務器節點,對于這種方式有兩個問題值得說明一下:

    1.當選擇到的服務器無法連接的時候,一種解決辦法是將嘗試的連接次數加到key后面,然后重新進行hash,這種做法也叫rehash。
    2.第二個問題也是這種方法的致命的缺點,盡管余數計算分散發相當簡單,數據分散也很優秀,當添加或者移除服務器的時候,緩存重組的代價相當大。

Consistent Hashing算法

Consistent Hashing算法描述如下:首先求出memcached服務器節點的哈希值,并將其分配到0~2^32的圓上,這個圓我們可以把它叫做值域,然后用同樣的方法求出存儲數據鍵的哈希值,并映射到圓上。然后從數據映射到的位置開始順時針查找,將數據保存到找到的第一個服務器上,如果超過0~2^32仍找不到,就會保存在第一臺memcached服務器上:

Memcached,分布式,緩存

memcachd基本原理

再拋出上面的問題,如果新添加或移除一臺機器,在consistent Hashing算法下會有什么影響。上圖中假設有四個節點,我們再添加一個節點叫node5:

Memcached,分布式,緩存

添加了node節點之后

node5被放在了node4與node2之間,本來映射到node2和node4之間的區域都會找到node4,當有node5的時候,node5和node4之間的還是找到node4,而node5和node2之間的此時會找到node5,因此當添加一臺服務器的時候受影響的僅僅是node5和node2區間。

優化的Consistent Hashing算法

上面可以看出使用consistent Hashing最大限度的抑制了鍵的重新分配,且有的consistent Hashing的實現方式還采用了虛擬節點的思想。問題起源于使用一般hash函數的話,服務器的映射地點的分布非常不均勻,從而導致數據庫訪問傾斜,大量的key被映射到同一臺服務器上。為了避免這個問題,引入了虛擬節點的機制,為每臺服務器計算出多個hash值,每個值對應環上的一個節點位置,這種節點叫虛擬節點。而key的映射方式不變,就是多了層從虛擬節點再映射到物理機的過程。這種優化下盡管物理機很少的情況下,只要虛擬節點足夠多,也能夠使用得key分布的相對均勻。

總結

本文介在理解緩存基本概念的情況下介紹了memcached的分布式算法實現原理,memcached的分布式是由客戶端函數庫實現的。

以上就是本文的全部內容,希望能給大家一個參考,也希望大家多多支持VEVB武林網。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线视频网站| 久久国产视频网站| 欧美丰满少妇xxxxx做受| 国产日韩精品电影| 色综合老司机第九色激情| 欧美激情欧美激情| 日本免费久久高清视频| 97国产一区二区精品久久呦| 一区二区成人精品| 91久久国产精品91久久性色| www.亚洲男人天堂| 国产精品网址在线| 高清日韩电视剧大全免费播放在线观看| 国产极品精品在线观看| 岛国精品视频在线播放| 色悠久久久久综合先锋影音下载| 日本欧美中文字幕| 日本免费久久高清视频| 57pao国产成人免费| 日韩欧美在线视频| 国内成人精品视频| 亚洲国产精品成人va在线观看| 亚洲日韩欧美视频一区| 欧美性猛交xxxx乱大交蜜桃| 日韩最新av在线| 欧美精品18videos性欧美| 91精品国产91久久久久久最新| 欧美极品少妇xxxxⅹ喷水| 91视频国产高清| 91精品久久久久久久久久入口| 国产精品久久久久77777| 欧美日韩午夜剧场| 日韩国产欧美区| 日韩成人在线观看| 91精品久久久久久久久中文字幕| 色妞一区二区三区| 中文字幕日韩专区| 91精品国产91久久久久| 亚洲欧美精品suv| 97在线日本国产| 亚洲精品自拍视频| 高跟丝袜欧美一区| 久久久久久久网站| 国产小视频91| 欧美性xxxxxx| 欧美做受高潮电影o| 久久久999精品| 国产精品第二页| 欧美日韩国产丝袜美女| 成人av在线亚洲| 日韩av手机在线| 亚洲影院高清在线| 亚洲天堂免费观看| 成人美女免费网站视频| 性日韩欧美在线视频| 国产精品你懂得| 亚洲理论在线a中文字幕| 亚洲天堂网站在线观看视频| 另类色图亚洲色图| 亚洲日韩第一页| 国产综合在线看| 在线看日韩av| 欧美日韩久久久久| 一区二区三区www| 中文字幕亚洲天堂| 亚洲激情中文字幕| 久久精品一区中文字幕| 久久福利网址导航| 欧美肥老太性生活视频| 北条麻妃99精品青青久久| 精品国产网站地址| 日韩欧美在线视频观看| 国产一区二区av| 国产亚洲精品va在线观看| 国产婷婷成人久久av免费高清| 亚洲国产欧美一区二区丝袜黑人| 日韩电影免费观看中文字幕| 日韩三级成人av网| 91性高湖久久久久久久久_久久99| 欧美中文字幕视频在线观看| 97在线看免费观看视频在线观看| 亚洲人在线视频| 欧美另类第一页| 国产91在线播放精品91| 国产欧美日韩精品专区| 亚洲国产精品久久久久久| 成人在线国产精品| 国产精品6699| 国产免费一区二区三区在线观看| 45www国产精品网站| 亚洲国产91精品在线观看| 日韩av在线不卡| 国产69久久精品成人| 欧美精品18videos性欧| 久久综合免费视频| 日韩美女福利视频| 亚洲人精选亚洲人成在线| 成人黄色短视频在线观看| 中文日韩在线视频| 国产精品你懂得| 国内精品模特av私拍在线观看| 欧美激情小视频| 国产精品久久一| 欧美高清一级大片| 尤物yw午夜国产精品视频| 欧美成人国产va精品日本一级| 最近中文字幕日韩精品| 国产精品福利无圣光在线一区| 欧美精品在线免费观看| 91久久久久久久久久久| 国产精品日韩专区| 亚洲精品自在久久| 亚洲小视频在线| 欧美日韩国产二区| 亚洲精品国精品久久99热一| 一道本无吗dⅴd在线播放一区| 性欧美xxxx视频在线观看| 97超碰色婷婷| 亚洲在线观看视频| 国产999精品久久久| 欧美精品精品精品精品免费| 亚洲激情视频在线播放| 国产精品视频内| 国产成人激情小视频| 亚洲国产成人爱av在线播放| 7777kkkk成人观看| 97在线精品国自产拍中文| 91香蕉嫩草影院入口| 精品视频久久久久久久| 欧美激情在线视频二区| 亚洲最大激情中文字幕| 欧美乱大交做爰xxxⅹ性3| 亚州欧美日韩中文视频| 精品免费在线观看| 在线日韩日本国产亚洲| 亚洲欧美日韩在线高清直播| 91精品国产综合久久香蕉的用户体验| 亚洲一区二区三区在线视频| 欧美视频裸体精品| 欧美日韩裸体免费视频| 日本一欧美一欧美一亚洲视频| 日韩电影中文字幕av| 青青草一区二区| 欧美影院成年免费版| 欧美激情久久久久| 91香蕉亚洲精品| 欧美电影在线免费观看网站| 欧美激情精品久久久久久大尺度| 26uuu另类亚洲欧美日本老年| 中文字幕无线精品亚洲乱码一区| 欧美极品少妇全裸体| 国产精品视频免费在线观看| 中国日韩欧美久久久久久久久| 亚洲无限av看| 久久久久国产精品一区| 国内精品久久久久久| 久久影院模特热| 色综合导航网站| 亚洲欧美日韩精品久久奇米色影视| 国产精品久久久久久av福利软件| 欧美肥婆姓交大片| 亚洲色图狂野欧美| 国产一区视频在线| 色yeye香蕉凹凸一区二区av|