Memcached的基礎(chǔ)梳理

1

Memcached 概念

官方解釋如下:

What is Memcached?

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular

languages.

Memcached 是一個開源桥嗤、高性能、分布式內(nèi)存對象緩存系統(tǒng)。

Memcache和Memcached到底有什么區(qū)別?

Memcache 是 danga.com 的一個項目撵彻,最早是為 LiveJournal 服務(wù)的钦购,目前全世界不少人使用這個緩存項目來構(gòu)建自己大負(fù)載的網(wǎng)站,來分擔(dān)數(shù)據(jù)庫的壓力梯投。

Memcached 是一個開源、高性能况毅、分布式內(nèi)存對象緩存系統(tǒng)

Memcache 是這個項目的名稱分蓖,而 memcached 是它服務(wù)器端的主程序文件名

2

Memcached 作用

Memcached 是以守護(hù)程序方式運行于一個或多個服務(wù)器中,隨時接受客戶端的連接操作尔许∶春祝客戶端首先與 Memcached 服務(wù)建立連接,然后存取對象味廊。保存在 Memcached 中的對象是放置在內(nèi)存中的蒸甜,而不是在硬盤上。

Memcached 進(jìn)程運行之后余佛,會預(yù)申請一塊較大的內(nèi)存空間柠新,自己進(jìn)行管理,用完之后再申請辉巡,不是每次需要的時候去向操作系統(tǒng)申請恨憎。Memcached將對象保存在一個巨 大的Hash表中,它還使用NewHash算法來管理Hash表,從而獲得進(jìn)一步的性能提升憔恳。所以當(dāng)分配給Memcached的內(nèi)存足夠大的時 候瓤荔,Memcached的時間消耗基本上只是網(wǎng)絡(luò)Socket連接了。

總之钥组,Memcached用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載输硝。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)程梦、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度点把。

3

Memcached 運行原理

Memcached處理的原子是每一個(key,value)對(以下簡稱kv對)作烟,key會通過一個hash算法轉(zhuǎn)化成hash-key愉粤,便于查找砾医、對比以及做到盡可能的散列拿撩。同時,memcached用的是一個二級散列如蚜,通過一張大hash表來維護(hù)压恒。

Memcached有兩個核心組件組成:服務(wù)端(Server)和客戶端(Client),在一個memcached的查詢中错邦,Client先通 過計算key的hash值來確定kv對所處在的Server位置探赫。當(dāng)Server確定后,客戶端就會發(fā)送一個查詢請求給對應(yīng)的Server撬呢,讓它來查找確 切的數(shù)據(jù)伦吠。因為這之間沒有交互以及多播協(xié)議,所以 memcached交互帶給網(wǎng)絡(luò)的影響是最小化的魂拦。

4

Memcached 特性

1毛仪、開源

開源地址:https://github.com/memcached/memcached/wiki

2、高性能

無論哪一種數(shù)據(jù)庫(oracle,mssql,mysql,db2……)芯勘,再怎么優(yōu)化箱靴,最終也避不開與慢速的硬盤進(jìn)行數(shù)據(jù)交換,但往往一旦涉及到 了硬盤的io操作荷愕,存取性能就會急劇下降衡怀。而Memcached的全部操作自始至終都是在內(nèi)存中進(jìn)行的,所以存取數(shù)據(jù)的效率非常高安疗。

當(dāng)然抛杨,大型網(wǎng)站對于數(shù)據(jù)庫的操作都會做優(yōu)化(讀寫分離,按照業(yè)務(wù)分庫分表)荐类。

3怖现、分布式

分布式系統(tǒng)網(wǎng)上比較專業(yè)的解釋是:一種計算機(jī)硬件的配置方式和相應(yīng)的功能配置方式。它是一種多處理器的計算機(jī)系統(tǒng)掉冶,各處理器通過互連網(wǎng)絡(luò)構(gòu)成統(tǒng)一 的系統(tǒng)真竖。系統(tǒng)采用分布式計算結(jié)構(gòu)脐雪,即把原來系統(tǒng)內(nèi)中央處理器處理的任務(wù)分散給相應(yīng)的處理器,實現(xiàn)不同功能的各個處理器相互協(xié)調(diào)恢共,共享系統(tǒng)的外設(shè)與軟件战秋。這 樣就加快了系統(tǒng)的處理速度,簡化了主機(jī)的邏輯結(jié)構(gòu)讨韭。

Memcache的分布式特性主要表現(xiàn)是:Memcached服務(wù)器端可以安裝在任意數(shù)量的server上脂信,提供并行存儲和計算的能力;Memcached客戶端和服務(wù)器端可以單獨安裝在任何獨立server上透硝。

5

Memcached 不足之處

1狰闪、數(shù)據(jù)是保存在內(nèi)存當(dāng)中的,一旦服務(wù)進(jìn)程重啟濒生,數(shù)據(jù)會全部丟失

對策:可以采取更改Memcached的源代碼埋泵,增加定期寫入硬盤的功能

2、Memcached以root權(quán)限運行罪治,而且Memcached本身沒有任何權(quán)限管理和認(rèn)證功能丽声,安 全性不足

對策:可以將Memcached服務(wù)綁定在內(nèi)網(wǎng)IP上,通過防火墻進(jìn)行防護(hù)

歡迎關(guān)注我的公眾號(同步更新文章)DoNet技術(shù)分享平臺

閱讀原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末觉义,一起剝皮案震驚了整個濱河市雁社,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晒骇,老刑警劉巖霉撵,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異洪囤,居然都是意外死亡徒坡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門箍鼓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崭参,“玉大人,你說我怎么就攤上這事款咖『文海” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵铐殃,是天一觀的道長海洼。 經(jīng)常有香客問我,道長富腊,這世上最難降的妖魔是什么坏逢? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上是整,老公的妹妹穿的比我還像新娘肖揣。我一直安慰自己,他們只是感情好浮入,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布龙优。 她就那樣靜靜地躺著,像睡著了一般事秀。 火紅的嫁衣襯著肌膚如雪彤断。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天易迹,我揣著相機(jī)與錄音宰衙,去河邊找鬼。 笑死睹欲,一個胖子當(dāng)著我的面吹牛供炼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播句伶,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼劲蜻,長吁一口氣:“原來是場噩夢啊……” “哼陆淀!你這毒婦竟也來了考余?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤轧苫,失蹤者是張志新(化名)和其女友劉穎楚堤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體含懊,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡身冬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岔乔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酥筝。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雏门,靈堂內(nèi)的尸體忽然破棺而出嘿歌,到底是詐尸還是另有隱情,我是刑警寧澤茁影,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布宙帝,位于F島的核電站,受9級特大地震影響募闲,放射性物質(zhì)發(fā)生泄漏步脓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靴患。 院中可真熱鬧仍侥,春花似錦、人聲如沸鸳君。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽相嵌。三九已至腿时,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饭宾,已是汗流浹背批糟。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留看铆,地道東北人徽鼎。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像弹惦,于是被迫代替她去往敵國和親否淤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容