1. 緩存伺服器是干什麼用的
簡單來說就是將internet的信息保存在本地中,節約資源
2. 什麼叫緩存伺服器
緩存伺服器用來存儲網路上的其他用戶需要的網頁,文件等等。這種伺服器不僅可以使用戶得到他們想要得信息,而且可以減少網路的交換量。緩存伺服器往往也是代理伺服器。對於網路的用戶,緩存伺服器和代理是不可見的,在用戶看來所有的信息都來自訪問的網站。
3. 緩存伺服器的緩存概念
這是兩種主要的Web緩存:
直接緩存,將用戶頻繁訪問的來自Internet伺服器的Web對象的拷貝保存在企業本地網路中。
反向緩存,企業內部Web伺服器的Web對象的拷貝保存在企業網路邊緣的代理伺服器上以提高外界訪問企業站點的性能。
Web緩存可以根據不同等級進行配置:
本地緩存:將Web對象緩存的拷貝保存在本地計算機中。大多數流行的Web瀏覽器默認情況下保留一個先前訪問對象的緩存。例如,Internet Explorer稱之為「臨時Internet文件」。本地緩存拷貝只是在用戶頻繁地從同一台機器訪問頁面時有用。
代理緩存:代理伺服器是為公司內的多個用戶/客戶計算機緩存Web對象的單獨機器。它們是位於客戶端和託管的Web伺服器之間的計算機,而且它們比本地緩存效率更高,因為在企業本地網路中的任何用戶或計算機訪問某個Web對象時,緩存拷貝對想訪問該對象的任何其他用戶/計算機是可用的,無需到Internet伺服器上再次下載它。代理緩存可以在網路邊緣與防火牆結合使用。
微軟的ISA Server和BlueCoat的工具一樣,既包括防火牆也包括緩存代理伺服器。緩存伺服器也可以是單獨的機器,運行免費的緩存軟體或商業產品,例如:
Linux版的Squid免費緩存代理
MOWS基於Java分布式web和緩存伺服器
Vicomsoft RapidCache Server for Windows或Macintosh
WinProxy for Windows
可升級的緩存解決方案
隨著公司的擴大,單一的Web緩存伺服器可能無法處理所有的通信或存儲足夠的Web對象。在這種情況下,可以擴展緩存解決方案以建立一個緩存陣列——一組共同工作以便在組內分配緩存負載的緩存代理伺服器。萬一某個緩存伺服器停機,還提供預設的容量。
要在陣列中操作,緩存伺服器必須能夠彼此使用協議進行通信,例如:
WCCP(Web緩存協調協議),Cisco緩存產品以及諸如Squid這樣的開源代理使用。
ICP(Internet緩存協議),被Squid和BlueCoat支持。
CARP(緩存陣列路由協議),被ISA Server Enterprise Edition用來管理緩存伺服器陣列的失效轉移和負載平衡。
CARP能夠支持幾乎無限的線性擴展以滿足快速增長型企業的需求。當向某個陣列中添加或移除一台伺服器時,CARP自動調整並再指定URL以有效地分布負載。
緩存陣列能夠以等級的或分布式的架構排列。在分布式緩存中,陣列中所有代理伺服器處在一個「平等地位」而且負載在它們之間進行分配。在分等級的緩存中,代理以鏈式進行配置,它們處在不同的等級,所以伺服器或陣列連接到其它離Internet更近的伺服器或陣列(離Internet最近的那些伺服器或陣列被看作「上游的」,那些最遠的被看作「下游的」)。這樣,緩存內容會盡可能地靠近需要它的用戶。
陣列是高度可升級的,因為可以向陣列添加伺服器,或向分等級的架構增加陣列等級,而無需擾亂目 前的緩存解決方案。
另一個可擴展性問題是使用緩存減少分支機構網路帶寬的能力。分支機構代理可能沒有直接連接到Internet,但是可以使用撥號連接或辦公室到辦公室的WAN連接以便從總公司的上游代理伺服器上請求Web對象。
另一個選擇是為需要向消費者提供基於Web的應用,可使用諸如由Akamai提供的服務。他們的Web Application Accelerator服務通過下列方法優化性能:
向他們的邊緣伺服器動態映射請求,並監視Internet路由以便在最快和最可靠的路由上傳輸。
利用壓縮技術和預取技術(pre-fetching)以最小化帶寬使用率。
用安全套接層(SSL)保護Web傳輸。
緩存支持的有些硬體標准:
目前緩存支持的硬體標准:
內存不超過4G,超過的只識別4G。
硬碟不超過2T,超過的只識別2T
存儲硬碟數量最大支持4塊(如果系統盤是電子盤不包含在內)
另外推薦使用INTEL的機器和網卡。
4. 緩存伺服器
我剛剛的回答應該有問題。
你的緩存伺服器怎麼運作的?可以上網的吧?比方proxy伺服器的話,所有上網的客戶機把代理設置為proxy 伺服器,提交請求的時候就是先找這台緩存伺服器,而緩存伺服器發現緩存中沒有內容的時候會自動上網獲取內容再提交給客戶端。
串聯的話,NAT方式緩存伺服器可能起不到緩存的作用了,還是代理模式才可以。原理一樣,串並聯都沒關系。
5. hibernate的緩存技術跟緩存伺服器都是跟緩存有關,請問他們倆個都是怎麼
sessiono由session工廠創建,是一個非常重要的對象,它可以開啟事務(業務中必須用到的),對數據進行增刪改查,創建hql,創建原生sql,創建qbc,等,主要是跟資料庫一級to,po,do對象打交道。
首先設置緩存的目的就是為了減少伺服器壓力提高用戶訪問速度。換才能就好像是我們的內存一樣,而資料庫就好像我們的硬碟一樣,從內存中拿數據肯定要比從硬碟中拿數據快的多。
一級緩存又名session級緩存,就是hibernate查詢資料庫後將查詢結果存放在緩存中,這樣下一次查詢相同數據時就不會從資料庫中拿數據,就可以直接在緩存中拿數據,加快了訪問速度。因為從資料庫中拿數據時費時費力的所以有了緩存就大大減小了伺服器壓力。
hibernate支持二級緩存,但是需要第三方插件。需要手動開啟,二級緩存要比一級緩存范圍大。我說的范圍大是指生存周期大。通常存放一些訪問頻率高但是需要更改的次數少的數據。它的存放位置是在本地的某個文件夾下(存儲位置可以通過配置文件設置)。
說白了有了緩存我們訪問數據就會很快,減少了伺服器壓力。
6. 怎樣利用緩存伺服器來負載均衡
根據一些專家的調查分析,發現企業在使用資料庫的時候,90%以上主要用來查詢。有些企業這個比例甚至更高。也就說,用戶對資料庫的操作,其實更新操作占的比例很少。大部分的操走都只是查詢操作。
如一些論壇,大部分用戶只會看貼,而不會發帖。這就是一個典型的查詢操作比例大大超過更新操作比例的例子。針對這種情況,其查詢操作往往是其資料庫性能的瓶頸。如何有效提高查詢的性能,這就使各個資料庫專家在考慮的問題。在SQL Server資料庫中,已經有了一個現成的解決方案。資料庫管理員可以利用緩存伺服器來提高資料庫的性能。筆者這里就以SQLServer2008為例,談談如何利用緩存伺服器來實現負載均衡,來提高資料庫的查詢效率。
一、 數據查詢與數據更新分開走。
如上圖所示,如果用戶要查看某個帖子,其就會打開某個連接。此時WEB應用伺服器就會從後台資料庫中查詢相關的記錄。這里需要注意的是,由於其只是查看帖子,而不涉及到更新的操作,為此WEB應用伺服器就只從緩存伺服器中讀取數據。這個緩存伺服器中的記錄跟資料庫伺服器的內容是同步的。WEB應用伺服器在從資料庫緩存伺服器讀取數據之前,還會先判斷一下哪台資料庫伺服器比較空。會優先連接到比較空閑的數據緩存伺服器中,然後從這台伺服器中讀取數據。所以,當訪問這個論壇的用戶比較多時,這個數據緩存伺服器能夠實現負載均衡的需要。
如果用戶看了某個帖子,現在需要發表一個評論,此時後台資料庫會怎麼操作呢?注意,當WEB應用伺服器發送了一個 Update更新操作的時候,其應用伺服器會自動連接到資料庫伺服器,而不會再連接到資料庫緩存伺服器。而是直接向資料庫伺服器發送更新操走的語句。當資料庫伺服器更新了相關的內容之後,會與資料庫緩存伺服器實現數據的同步。從上圖中可以看出,整個數據查詢與數據更新WEB應用伺服器是分兩條路走。其實這就好像是公路上分道行駛,機動車走機動車道;非機動車走非機動車道。
如此的話,就不會因為非機動車比較慢,而影響到機動車的速度。在這個方案中,將資料庫的更新操作與查詢操作分開來走,也是類似的道理。在查詢時,數據流是單向流動的,所以能夠在很大程度上提高查詢的效率。從而讓數據負載均衡的效果更加明顯。總之,當某個應用程序查詢操作大大超過更新操作時,通過在多個資料庫間緩存只讀數據,並在資料庫間均勻連接客戶端以分發負載,則就可以向外擴展工作負荷的讀取分區,即實現負載均衡的目的。
二、 採用這個方案需要注意的地方。
在部署這個解決方案時,仍然有些資料庫管理員需要關注的內容。如以下這些內容,資料庫管理員需要根據企業的實際情況來進行調整,以提高這個方案的價值。
首先需要考慮數據緩存伺服器與資料庫伺服器之間同步的頻率問題。這個同步操作是一把雙刃劍。若同步的頻率太高,會影響資料庫伺服器與緩存伺服器的性能;若同步頻率比較低的話,則資料庫緩存伺服器中的數據得不到及時的更新。
如此的話,用戶查詢時可能在短時間內無法獲取最新的數據。所以,一般來說,系統滯後的時間應該盡量的短,即資料庫伺服器的更新內容必須盡快與資料庫緩存伺服器進行同步。
理想的狀態時,在更新資料庫伺服器的同時更新資料庫緩存伺服器。但是,這么做是以犧牲資料庫與資料庫緩存伺服器的性能為代價的。為此資料庫管理員在實施這個解決方案時,往往不會這么做。而是設置在一段時間之後同步。如可以設置為10秒、60秒、300秒或者更長的時間後進行同步。
具體這個同步的時間間隔多少為好,沒有一個統一的標准。這需要資料庫管理員根據企業對數據同步的要求不同而定。一般來說,資料庫管理員在滿足用戶需要的前期下,可以將這個時間設置的相對長一點。這可以避免因為過多的同步操作而降低了這個方案的價值。其實,對於大部分用戶來說,60秒左右的時間差異還是可以接受的。如在論壇中,一個人發帖後,在一分鍾之後看到一般不會有什麼問題。對於人的感覺來說,這個一分鍾時間不長。但是對於資料庫伺服器來說,這一分鍾可以做很多事情。所以,適當延長這個同步時間,卻可以在很大程度上提高資料庫伺服器性能。這個時間的代價,有時候還是值得的。
其次,在資料庫伺服器與資料庫緩存伺服器之間,應該建立比較直接的、快速的網路連接。當用戶比較多時,資料庫伺服器與資料庫緩存伺服器之間若發生同步操作,則會造成很多的網路流量。有時候同步操作發生時,影響這個工作的效率可能並不是資料庫伺服器或者資料庫緩存伺服器本身,而是他們之間的網路連接。
由於其可用的帶寬跟不少資料庫伺服器系統的吞吐量,從而影響到了同步操作的效率。為此,在資料庫伺服器與資料庫緩存伺服器之間的網路連接,應該盡量的直接。如最好不要在中間夾著其他的不必要的網路設備;也最好不要在他們之間配備防火牆等安全策略。這些安全策略與網路設備都會在很大程度上影響到這個同步操作的效率。
另外,最好也不要有其他的應用服務來爭搶帶寬。所以簡單的說,如果可能的話,在資料庫伺服器上部署多張網卡,直接與資料庫源伺服器實現雙機互聯,而那傳輸同步操作需要的數據,這是一個很不錯的手段。由於其數據傳輸更直接、而且其他設備或者應用服務也會來爭奪其帶寬,同時又可以克服他們的非法攻擊。為此,只要他們之間多距離比較短的話,採用這種方案可能效果會比較好,可以在最大程度內縮短這個同步操作所需要的時間,從而讓其他用戶盡早看到更新的數據。
第三為同步選擇合適的復制方案。
那麼該如何實現資料庫伺服器與緩存伺服器之間的同步呢?在SQLServer資料庫中,有三個方案可供資料庫管理員選擇。這三個方案分別為快照復制、合並復制與事務復制。這三個復制模型各有各的特點。不過從最終效果來看,其都可以實現資料庫伺服器與資料庫緩存伺服器之間的同步。不過由於其內部的實現機制不同,為此其雖然結果相同,但是從性能等方面考慮,還是有差異的。
各種復制模型的原理與特點屬於基本知識的范疇,筆者在這里就不做過多闡述了。筆者認為,在利用這個資料庫緩存伺服器來實現負載均衡的方案中,最好採用事務復制的同步方案。因為相比其他方案來說,事務日誌能夠滿足事務的一致性、資料庫伺服器系統比較大的吞吐量、同步時盡量少的開銷、以及系統比較短的滯後時間等等需求。
另外在有些企業中採用這個方案的話,還要考慮到表與記錄的過濾需求。而通過事務復制的話,就可以實現對列和行的過濾。而其他復制模型的話,只能夠部分滿足這些需求。
所以,筆者認為,在選擇數據同步方案時,可能選擇事務復制來實現同步,更加的合適。不過最終是否真是如此,還是要求資料庫管理員根據企業的實際需要,然後分別採用幾個復制模型來進行測試,才能夠得出真正合理的結果。
7. 緩存伺服器的緩存伺服器原理
Web緩存伺服器的應用模式主要是正向代理和反向代理。正向代理(Proxy)模式是代理網路用戶訪問internet,客戶端將本來要直接發送到internet上源伺服器的連接請求發送給代理伺服器處理。正向代理的目的是加速用戶在使用瀏覽器訪問Internet時的請求響應時間,並提高廣域網線路的利用率。正向代理瀏覽器無需和該站點建立聯系,只訪問到Web緩存即可。通過正向代理,大大提高了後續用戶的訪問速度,使他們無需再穿越Internet,只要從本地Web緩存就可以獲取所需要的信息,避免了帶寬問題,同時可以大量減少重復請求在網路上的傳輸,從而降低網路流量,節省資費。
反向代理(Reverse Proxy)模式是針對Web伺服器加速功能的,在該模式中,緩存伺服器放置在web應用伺服器的前面,當用戶訪問web應用伺服器的時候,首先經過緩存伺服器,並將用戶的請求和應用伺服器應答的內容寫入緩存伺服器中,從而為後續用戶的訪問提供更快的響應。其工作原理如下圖所示。
8. 硬碟緩存對模擬軟體的作用
如果不考慮容量,建議用16M的,緩存的作用還是挺大的,特別是大數據量讀寫時,能充分體現出來讀寫性能。
9. 緩存伺服器的什麼是緩存伺服器
無論企業有多大,Web緩存都有助於優化性能和節省寬頻。而且如果選擇了正確的緩存解決方案,它可以隨著企業網路的增長而擴大,而無需進行昂貴且耗時的重建。
幾年以前,理論是超高帶寬的Internet連接會使Web緩存毫無用處,但是結果並非如此。即使最快的速率達到30-45Mbps的光纖Internet連接和速度在100 Mbps到1 Gbps速率的區域網相比仍然很慢,所以性能依舊是一個問題。除此之外,緩存提高了可用性,因為即使託管的Web伺服器停機或者由於網路問題而不可達時,緩存的對象拷貝仍然可以訪問。如果企業根據流量付費,緩存還可以降低Internet連通性的費用。即使是小公司,緩存也會有利,而且好的緩存解決方案將隨著企業級別升級。
10. 如何django中用redis緩存伺服器,求詳細教程。
django-redis 中文文檔
Andrey Antukh, [email protected] 4.7.0
翻譯: RaPoSpectre
1. 介紹
django-redis 基於 BSD 許可, 是一個使 Django 支持 Redis cache/session 後端的全功能組件.
1.1 為何要用 django-redis ?
因為:
持續更新
本地化的 redis-py URL 符號連接字元串
可擴展客戶端
可擴展解析器
可擴展序列器
默認客戶端主/從支持
完善的測試
已在一些項目的生產環境中作為 cache 和 session 使用
支持永不超時設置
原生進入 redis 客戶端/連接池支持
高可配置 ( 例如模擬緩存的異常行為 )
默認支持 unix 套接字
支持 Python 2.7, 3.4, 3.5 以及 3.6
1.2 可用的 django-redis 版本
穩定版本: 4.7.0
穩定版本: 3.8.4
1.3 我該使用哪個版本
版本號像 3.6, 3.7 … 等的是主要發行版本, 會包含向後不兼容的內容. 跟多信息請在升級前閱讀升級日誌.
版本號像 3.7.0, 3.7.1… 等的是小更新或者 bug 修復版本, 一般只會包含 bug 修復, 沒有功能更新.
1.4 依賴
1.4.1 Django 版本支持
django-redis 3.8.x 支持 django 1.4, 1.5, 1.6, 1.7 (或許會有 1.8)
django-redis 4.4.x 支持 django 1.6, 1.7, 1.8, 1.9 和 1.10
1.4.2 Redis Server 支持
django-redis 3.x.y 支持 redis-server 2.6.x 或更高
django-redis 4.x.y 支持 redis-server 2.8