<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      李天平的博客


      天道酬勤
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      Memcached — 分布式緩存系統

      1.Memcached是什么?

          Memcached是高性能的,分布式的內存對象緩存系統,用于在動態應用中減少數據庫負載,提升訪問速度。Memcached通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。MemcachedDanga Interactive最初為了加速 LiveJournal網站訪問速度而開發的,后來被很多大型的網站采用。起初作者編寫它可能是為了提高動態網頁應用,為了減輕數據庫檢索的壓力,來做的這個緩存系統。它的緩存是一種分布式的,也就是可以允許不同主機上的多個用戶同時訪問這個緩存系統,這種方法不僅解決了共享內存只能是單機的弊端, 同時也解決了數據庫檢索的壓力,最大的優點是提高了訪問獲取數據的速度!基于memcached作者對分布式cache的理解和解決方案。memcached完全可以用到其他地方 比如分布式數據庫,分布式計算等領域。Memcached將數據庫負載大幅度降低,更好的分配資源,更快速訪問。

      2.Memcached工作機制

          通過在內存中開辟一塊區域來維持一個大的hash表來加快頁面訪問速度,和數據庫是獨立的。但是目前主要用來緩存數據庫的數據。允許多個server通過網絡形成一個大的hash,用戶不必關心數據存放在哪,只調用相關接口就可。存放在內存的數據通過LRU算法進行淘汰出內存。同時可以通過刪除和設置失效時間來淘汰存放在內存的數據。

          現在一些.NET開發人員開始放棄ASP.NET內置的緩存機制,轉而使用Memcached——一種分布式的內存緩存系統。當運行在單獨的Web服務器上,你可以很容易地清除一個已經確認被改變了的緩存。可惜,ASP.NET沒有一個很好的方法來支持多服務器。每個服務器上的緩存都對其他緩存的改變一無所知。

          ASP.NET允許通過基于文件系統和數據庫表的觸發器來作廢一個緩存。然而,這也存在問題,比如數據庫觸發器需要使用昂貴的輪詢,以及觸發器本身冗長的編程。但是,我們還是有其他的選擇的。

          不像ASP.NET內置的緩存機制,Memcached是一個分布式的緩存系統。任何Web服務器都能更新或刪除一個緩存項,并且所有其他的服務器都能在下次訪問這些緩存項的時候自動獲取到更新的內容。這是通過把這些緩存項存儲在一個或者多個緩存服務器上來實現的。每一個緩存項都根據它的關鍵字的哈希值來分配到一個服務器上。

          表面看來,Memcached針對ASP.NETAPI就像和內置的API一樣。這讓開發人員很容易地轉換到Memcached上,僅僅通過在代碼中查找和替換即可實現。

          一個被推薦的解決方案是不根據緩存項的關鍵字來生成哈希鍵值。這將允許開發人員能夠讓一個給定頁面中需要的所有緩存項,盡量存放在同一個服務器上。可惜,基于數據保存的地方而不是基于緩存項自身的關鍵字來生成哈希鍵,很容易產生錯誤,需要仔細來實現(這個算法)。

           Memcached是基于Linux運行的,你可以在BSD的許可協議下使用Memcached。他也提供了針對C#的客戶端以及PerlPythonPHPJava和其他語言的APIhttp://www.danga.com/memcached/apis.bml。還有一個Win32的移植版本(http://jehiah.cz/projects/memcached-win32/),可以讓Memcached運行在非Linux的機器上。

       

           Cacheman .NET架構下的分布式緩存項目

            Cacheman據說是由微軟旗下的 Popfly 項目組成員 Sriram Krishnan 的作品。是他用業余時間開發的。最新的情況是,微軟的 Popfly 網站已經“悄悄地”的做了更新,就是采用了 Krishnan Cacheman,更新了緩存機制。該項緩存技術更新帶來的性能提升非常顯著,根據Popfly團隊中的 John Montgomery 的說法:加載一個已有的Mashup應用時,可以帶來26倍的性能提升。

             這些說法也得到了 Krishnan 本人的確認。他提到這是Cacheman 的第一次的實際應用,并自豪的說 Cacheman 不費吹灰之力就拿下了 Popfly 的全部訪問量。

           簡單介紹一下 Cacheman 這個項目。資料主要來源于 Krishnan的博客對Cacheman的介紹。

      Cacheman是一個基于Windows平臺的快速分布式哈希表。是由純托管代碼實現。中間擱置了有幾個月,直到最近才開始重新上馬這個項目,極可能就是因為Popfly項目需要的緣故才開始著手的。

           Krishnan本人對 memcached 很感興趣,于是創建了 CachemanCacheman上有很多 memcached 的影子,比如與memcached相似的文本通訊協議。Cacheman的通訊協議公開,任何人可以根據自己偏愛的語言環境寫客戶端。 Krishnan 在自己家用電腦(2.4GHz Intel Core 2 2GB內存)上進入測試,達到了每秒16000次左右的請求,并且還是服務器與客戶端都是在同一臺服務器下完成的。

          現這款產品還不太完善,作者自身也提到:在Cacheman做指定keyGET/SET/DELETE操作時,客戶端需要弄清需要與哪一臺Cacheman服務器通訊,為此要對該key做一個快速FNV哈希然后求余得到應該和幾臺服務器中的哪臺服務器通訊。但該法的缺點在于新增或刪除一個服務器節點時,緩存節點需要大規模遷移。修復該問題需要一致性的哈希算法,作者表示還沒有時間解決此事。作者提出了采用中心架構的“主緩存服務器”的解決辦法,讓客戶端輪詢主緩存服務器來獲取應該與那個緩存服務器通訊,但他也覺的這樣做增加了復雜性,會帶來些新問題。

          可以感覺到,由于 Cacheman 這個個人項目已經介入到 Popfly 這個正式產品中,可能很快就會被微軟吸納為正式產品,因此如果有人采用這個產品做自己緩存的解決方案的話,應該不必太擔心后續的產品升級及文檔支持服務,它的未來前途值的期待。說不定 Krishnan 會從 Popfly 項目脫身出來專職負責這個 Cacheman 項目。

      目前最新的版本是0.0.2版 :http://www.sriramkrishnan.com/code/

           (全文完)(選自《亮劍.NET:.NET深入體驗與實戰精要》15

       

      主站蜘蛛池模板: 青青青青国产免费线在线观看| 免费国产高清在线精品一区| 久久精品中文字幕少妇| 宾馆人妻4P互换视频| 福泉市| 国产乱精品一区二区三区| 山东省| 亚洲国产精品一区二区三| 国产精成人品日日拍夜夜 | 动漫AV纯肉无码AV电影网| 国产国产精品人体在线视| 一区二区精品久久蜜精品| 久久ww精品w免费人成| 九九热在线精品免费视频| 377P欧洲日本亚洲大胆| 成人无号精品一区二区三区| 日韩一区二区三区女优丝袜| 日本免费最新高清不卡视频| 女性高爱潮视频| www插插插无码免费视频网站| 国产三级精品三级| 福利一区二区在线视频| 亚洲精品综合第一国产综合| 午夜色无码大片在线观看免费| 国产福利深夜在线观看| 国内精品自国内精品自久久| 美女一区二区三区在线观看视频| 蜜桃av亚洲第一区二区| 绯色蜜臀av一区二区不卡| 久久久久无码中| 亚日韩精品一区二区三区| 亚洲精品动漫免费二区| 日日碰狠狠躁久久躁综合小说 | 九色综合国产一区二区三区| 久久久久人妻精品一区三寸| 无码国产精品一区二区av| 梧州市| 精品一区二区亚洲国产| 最新精品国偷自产在线美女足| 青草青草久热精品视频在线播放| 天天影视色香欲综合久久|