分布式快取
1、什麼是分布式快取?
在高併發的環境下,大量的i/o處理與cpu的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會造成資料重複存放的情況。
2、分布式快取的好處?
使用分布式快取,可以在高併發的環境下,減輕資料庫的壓力,提高系統的響應速度和併發吞吐。
3、如何實現分布式快取?
分布式快取的典型代表主要是memcache。
memcache使用key-value鍵值對的形式儲存和訪問資料,在記憶體中維護一張巨大的哈hashtable表,使得對資料的查詢的時間複雜度降低到o(1),保證了對資料的高效能訪問。
當記憶體中沒有足夠的空間來儲存新資料的時候,採用lru演算法把最近不常訪問的資料淘汰掉,從而騰出更多的空間來儲存新資料。
memcache本身並不是一種分布式的快取系統,它的分布式是由訪問它的客戶端來實現的。一種比較簡單的實現方式是根據的key來進行hash,當後端有n臺伺服器時,訪問的伺服器為hash(key)%n,這樣就可以將前端的請求均衡地對映到後端的快取伺服器。
4、分布式session
在傳統的應用伺服器中,如tomact自身所實現的session管理大部分都是基於單機的。對於大型分布式**來說,支撐業務的遠遠不止一台伺服器,而是乙個分布式集群,不用的請求在不同的伺服器之間跳轉,如何保證各個伺服器之間的session同步,從而來保證系統的可靠性。
首先可以將session持久化到db中,但是這樣會使得系統的吞吐量收到很大的影響。另外一種方案是把session統一儲存在快取集群上,如memcache,這樣可以保證較高的讀寫效能。如:前端使用者請求經過隨機分發後,經過負載均衡演算法隨機選擇乙個web server伺服器,但伺服器隨時可能會宕機。因此,此時將session儲存在後端的快取集群中,顯得尤為重要,即使是web server宕機,其他的web server也可以通過sessionid從cache集群中找到session,這樣便實現了session的同步,提高了web server的容錯性。
分布式快取
分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...
分布式快取
網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...
分布式快取
快取雪崩我們可以簡單的理解為 由於原有快取失效,新快取未到期間所有原本應該訪問快取的請求都去查詢資料庫了,而對資料庫 cpu 和記憶體造成巨大壓力,嚴重的會造成資料庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。一般有三種處理辦法 1.一般併發量不是特別多的時候,使用最多的解決方案是加鎖排隊。2....