Memcached的基礎梳理


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 是一個開源、高性能、分布式內存對象緩存系統。

Memcache和Memcached到底有什么區別?

Memcache 是 danga.com 的一個項目,最早是為 LiveJournal 服務的,目前全世界不少人使用這個緩存項目來構建自己大負載的網站,來分擔數據庫的壓力。

Memcached 是一個開源、高性能、分布式內存對象緩存系統

Memcache 是這個項目的名稱,而 memcached 是它服務器端的主程序文件名

2、?Memcached 作用

Memcached 是以守護程序方式運行于一個或多個服務器中,隨時接受客戶端的連接操作。客戶端首先與 Memcached 服務建立連接,然后存取對象。保存在 Memcached 中的對象是放置在內存中的,而不是在硬盤上。

Memcached 進程運行之后,會預申請一塊較大的內存空間,自己進行管理,用完之后再申請,不是每次需要的時候去向操作系統申請。Memcached將對象保存在一個巨 大的Hash表中,它還使用NewHash算法來管理Hash表,從而獲得進一步的性能提升。所以當分配給Memcached的內存足夠大的時 候,Memcached的時間消耗基本上只是網絡Socket連接了。

總之,Memcached用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。

3、?Memcached 運行原理

Memcached處理的原子是每一個(key,value)對(以下簡稱kv對),key會通過一個hash算法轉化成hash-key,便于查找、對比以及做到盡可能的散列。同時,memcached用的是一個二級散列,通過一張大hash表來維護。

Memcached有兩個核心組件組成:服務端(Server)和客戶端(Client),在一個memcached的查詢中,Client先通 過計算key的hash值來確定kv對所處在的Server位置。當Server確定后,客戶端就會發送一個查詢請求給對應的Server,讓它來查找確 切的數據。因為這之間沒有交互以及多播協議,所以 memcached交互帶給網絡的影響是最小化的。

4 、Memcached 特性

1、開源

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

2、高性能

無論哪一種數據庫(oracle,mssql,mysql,db2……),再怎么優化,最終也避不開與慢速的硬盤進行數據交換,但往往一旦涉及到 了硬盤的io操作,存取性能就會急劇下降。而Memcached的全部操作自始至終都是在內存中進行的,所以存取數據的效率非常高。

當然,大型網站對于數據庫的操作都會做優化(讀寫分離,按照業務分庫分表)。

3、分布式

分布式系統網上比較專業的解釋是:一種計算機硬件的配置方式和相應的功能配置方式。它是一種多處理器的計算機系統,各處理器通過互連網絡構成統一 的系統。系統采用分布式計算結構,即把原來系統內中央處理器處理的任務分散給相應的處理器,實現不同功能的各個處理器相互協調,共享系統的外設與軟件。這 樣就加快了系統的處理速度,簡化了主機的邏輯結構。

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

4、Memcached 不足之處

1、數據是保存在內存當中的,一旦服務進程重啟,數據會全部丟失

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

2、Memcached以root權限運行,而且Memcached本身沒有任何權限管理和認證功能,安 全性不足

對策:可以將Memcached服務綁定在內網IP上,通過防火墻進行防護

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

閱讀原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272570.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html5 canvas 筆記五(合成與裁剪)

組合 Compositing globalCompositeOperation syntax: globalCompositeOperation type 注意:下面所有例子中,藍色方塊是先繪制的,即“已有的 canvas 內容”,紅色圓形是后面繪制,即“新圖形”。 source-over  這是默認…

一個能夠編寫、運行SQL查詢并可視化結果的Web應用:SqlPad

SqlPad 是一個能夠用于編寫、運行SQL查詢并可視化結果的Web應用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前僅適合單個團隊在內網中使用,它直接通過網絡連接到數據庫服務器,任何人可以在上面執行任意 SQL 語句。安裝首先安裝 Node.js.安裝好No…

加拿大計算機語言學,加拿大語言學專業排名

語言學專業簡言之就是學習語言,包括語言的結構、形成、歷史、以及人們如何使用語言等等。下面出國留學網小編和大家聊一聊2018加拿大大學語言學專業排名,希望對同學們有所幫助,歡迎閱讀。1麥吉爾大學 McGill University麥吉爾大學是全球大學校…

UIView之常用方法

UIView之常用方法 將一個視圖添加為子視圖,并使之在最上面顯示 -(void)addSubView:(UIView *)view;將指定子視圖移動到頂部 -(void)bringSubViewToFront:(UIView *)view;將指定之視圖放到最下面 -(void)sendSubViewToBack:(UIView *)view;將指定視圖添加到subviews數…

Web前端開發框架對比

近幾年隨著 jQuery、Ext 以及 CSS3 的發展,以 Bootstrap 為代表的前端開發框架如雨后春筍般擠入視野,可謂應接不暇。不論是桌面瀏覽器端還是移動端都涌現出很多優秀的框架,極大豐富了開發素材,也方便了大家的開發。這些框架各有特…

html5 篩子,html5搖骰子游戲

骰子游戲body#can;can;ctx;[];;;]]];window.οnlοad function(){can);ctx);ctx.clearRect(0,0,can.width,can.height);for(var i0;ictx.fillStyle orange;ctx.fillRect(diceCoordinates[i][0],diceCoordinates[i][1],40,40);draw(diceCoordinates[i],i,pointCoordinates[i]);…

關于xcode7編譯舊項目崩潰-[UIApplication _runWithMainScene:transitionContext:completion:]

崩潰原因 crash:Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-( *** Terminating app due to uncaught exception NSInternalInconsiste…

linq.js的用法

linq.js 詳細介紹linq.js 是一個 JavaScript 實現的 LINQ。主要特性:實現所有 .NET 4.0 的方法complete lazy evaluationfull IntelliSense support for VisualStudiotwo versions - linq.js and jquery.linq.js (jQuery plugin)support Windows Script Hostbinding…

標準MD5加密算法

標準MD5加密算法: public class Md5 {public static String getMd5(String s) {char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,a, b, c, d, e, f };try {byte[] strTemp s.getBytes();MessageDigest mdTemp MessageDigest.getInstance("md5");mdTemp.update(s…

程序員大牛們的經典語錄

1、很多問題不見得會出在你身上,但你亦需要想法解決問題,否則就會變成你的問題;2、懂得但策略的說不(不會這個準備累死吧,程序員);3、我考進事業單位,呵呵,沒有傳說中的那…

linux下創建的符號鏈接的權限

今天為shell腳本創建符號鏈接的時候突然發現的, 創建的符號鏈接文件的默認權限是 777, 而想要這個腳本可執行, 必須為真正的文件加上 x 權限才可以. 轉載于:https://www.cnblogs.com/vanwoos/p/5075656.html

計算機osta試題,OSTA試題庫.doc

OSTA試題庫章節單選多選填空判斷小計計算機基礎知識64152020119Windows操作系統4810101583計算機網絡應用4810151184Word文檔處理51172120109Excel電子表格處理4515152095PowerPoint演示文稿制作5215112098多媒體技術4512102087合計35394102126675計算機基礎知識(64152020120)一…

SQLSERVER得到數據庫中所有表字段及字段中文描述

如何得到數據庫中所有表字段及字段中文描述以下資料,通過csdn的一位師兄從SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序號, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…

SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數字段對記錄進行重復顯示...

SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數字段對記錄進行重復顯示 原文:SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數字段對記錄進行重復顯示版權聲明 版權聲明:原…

編程界十大頂級IDE

IDE是集成開發環境(Integrated Development Environment)縮寫。IDE是一種個編程軟件,是集成了程序員語言開發中會需要的一些基本工具、基本環境和其他輔助功能的應用軟件。IDE一般包含三個主要組件:源代碼編輯器(Edito…

就業局培訓計算機心得,人社局計算機培訓心得體會.doc

人社局計算機培訓心得體會人社局計算機培訓心得體會篇一:計算機培訓心得體會 計算機培訓心得體會: 2017年暑假,我參加了骨干教師計算機培訓。通過5天培訓老師認真的講解、不厭其煩的答疑,同班學習的各校同行們激情四射的討論交流,…

有點成熟的短句,最新個性簽名

01、從前的人,多認真。02、我不希望你死于一事無成。03、放棄自我,而后成就自我。04、漫漫人生路,我們且行且珍惜!05、你我只是初見,我便愛上了你。06、放棄了所有,卻等不來你說的承諾。07、不問風&#xf…

iscroll 4.0 滾動(水平和垂直)

1、概述 iscroll 專注于頁面滾動js。Iscroll滾動做的挺好,特別是針對手機網頁(android、iphone)正好彌補手動滑屏的遺缺,而今研究一番,把代碼貼出來,供大家參考。 2、iscroll使用說明 初始化iScroll wrapperhour//標識…

布法羅博士計算機專業回國人員,四名UW學生參加愛達荷州國家實驗室的實習計劃...

中游石油和天然氣運營正日益面臨代價高昂,受到嚴格審查的事件,這些事件源于老化(泄漏和爆炸),自然事件(洪水,地震活動和極端天氣)以及網絡入侵和攻擊。解決這些問題的一種方法涉及使用集成的智能監控系統或安全嵌入式智能(SEI)。懷…

學會拐彎,才是人生大智慧(深度好文)

人生天地間,路路九曲彎,從來沒有筆直的。水能直至大海,就是因為它巧妙地避開所有障礙,不斷拐彎前行。許多聰明人沒能走上成功之路,不少是因為撞了南墻不回頭。人生路上難免會遇到困難,拐個彎,繞…