基本概念squid反向代理作web加速是大型網站的常用模式。1.squid來自于1990的cacheharvest項目。這個項目一個分支形成squid,另一個形成netapp的netcache產品(netapp的netcache是固化在其硬件產品中的,整體價格很貴)2.squid是硬盤緩存,其使用內存作緩存內容的索引(一個索引在32位系統中大小是75bytes,在64位系統中是112bytes)。可以把squid想象成數據庫,硬盤上是數據,內存中是索引:查詢內存索引,發現內存位置,發出去。
代理服務器是使用非常普遍的一種將局域網主機聯入互聯網的一種方式,使用代理上網可以節約緊缺的IP地址資源,而且可以阻斷外部主機對內部主機的訪問,使內部網主機免受外部網主機的攻擊。但是,如果想讓互聯網上的主機訪問內部網的主機資源(例如:Web站點),又想使內部網主機免受外部網主機攻擊,一般的代理服務是不能實現的,需要使用反向代理來實現。
Memcache概念memcached是高性能的分布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性Memcache概念Web servers如apache應用程序如tomcat Memcache讀取寫入讀取讀取操作的順序是從Web層獲取請求(需要執行一次數據庫查詢)并檢查之前在緩存中存儲的查詢結果。如果我找到所需的值,則返回它。如果未找到,則執行查詢并將結果存儲在緩存中,然后再將結果返回給Web層。
Memcached是danga.com(運營LiveJournal的技術團隊)開發的一套分布式內存對象緩存系統,用于在動態系統中減少數據庫負載,提升性能。關于這個東西,相信很多人都用過,本文意在通過對memcached的實現及代碼分析,獲得對這個出色的開源軟件更深入的了解,并可以根據我們的需要對其進行更進一步的優化。末了將通過對BSM_Memcache擴展的分析,加深對memcached的使用方式理解。
memcached是什么?memcached是一個高性能的分布式的內存對象緩存系統,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。最初為了加速LiveJournal訪問速度而開發的,后來被很多大型的網站采用。起初作者編寫它可能是為了提高動態網頁應用,為了減輕數據庫檢索的壓力,來做的這個緩存系統。它的緩存是一種分布式的,也就是可以允許不同主機上的多個用戶同時訪問這個緩存系統,這種方法不僅解決了共享內存只能是單機的弊端,同時也解決了數據庫檢索的壓力,最大的優點是提高了訪問獲取數據的速度!基于memcached作者對分布式cache的理解和解決方案。memcached完全可以用到其他地方比如分布式數據庫,分布式計算等領域。
什么是Memcached?Memcached是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。
通過本文的介紹,它可以了解Squid的基本能力。當然,它的能力遠不止此,可以建立強大的代理服務器陣列,可以幫助本地的Web服務器提高性能,可以提高本地網絡的安全性等。要想發揮它的功效,還需要進一步控制。
Memcached是一個高性能的分布式內存 對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象 來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。相信很多人都用過緩存,在 .net 中也有內置的緩存機制,還有很多第三方工具如apache,nginx等可以做靜態資源的緩存,同時我們也可 以制定自己的緩存機制,緩存數據庫查詢的數據以減少對數據庫的頻繁操作。但是很多時候我們總是感覺這些緩存總不盡人意, Memcached可以解決你不少的煩惱問題。 最少在我的學習中解決了我不少問題,所以決定記錄下來分享。
Cache和IMemcachedCache接口是Cache的基礎接口,定義了基本的Cache操作,詳細地說明參看附錄,使用方式參看Demo和使用注意。ICacheManager是Cache生命周期管理類,一個應用只需要一個ICacheManager來管理所有的Cache,具體介紹參看Cache Demo中的Cache Manager介紹。Cache Client支持默認(在Classpath中查找Memcached.xml作為客戶端配置)和指定配置文件。配置文件是Cache Client的正常運行的基礎,系統如果要在運行中使用Cache Client的話,必須在使用前(一般最好是應用啟動時)初始化Cache Client組件(讀取配置文件,創建連接池等等)。
Memcached是一種集中式Cache,支持分布式橫向擴展。這里需要有點說明,很多開發者覺得Memcached是一種分布式Cache,但是其實Memcached服務端本身是單實例的,只是在客戶端實現過程中可以根據存儲的主鍵作分區存儲,而這個區就是Memcached服務端的一個或者多個實例,如果將客戶端也囊括到Memcached中,那么可以部分概念上說是集中式的。其實回顧一下集中式的構架,無非兩種情況:1.節點均衡的網狀(JBoss Tree Cache),利用JGroup的多播通信機制來同步數據。2.Master-Slaves模式(分布式文件系統),由Master來管理Slave,如何選擇Slave,如何遷移數據,都是由Master來完成,但是Master本身也存在單點問題。
Memcached是國外社區網站 LiveJournal 的開發團隊開發的高性能的分布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。