分布式快取出於如下考慮,首先是快取本身的水平線性擴充套件問題,其次是快取大併發下的本身的效能問題,再次避免快取的單點故障問題(多副本和副本一致性)。分布式快取的核心技術包括首先是記憶體本身的管理問題,包括了記憶體的分配,管理和**機制。其次是分布式管理和分布式演算法,其次是快取鍵值管理和路由。
memcached要想實現分布式只能在客戶端來完成,目前比較流行的是通過一致性hash演算法來實現。首先求出memcached伺服器(節點)的雜湊值, 並將其配置到0~232的圓(continuum)上。 然後用同樣的方法求出儲存資料的鍵的雜湊值,並對映到圓上。 然後從資料對映到的位置開始順時針查詢,將資料儲存到找到的第乙個伺服器上。 如果超過232仍然找不到伺服器,就會儲存到第一台memcached伺服器上。在consistent hashing中,只有在continuum上增加伺服器的地點逆時針方向的 第一台伺服器上的鍵會受到影響。
關於一致性hash,再盜圖一張。
因此,consistent hashing最大限度地抑制了鍵的重新分布。 而且,有的consistent hashing的實現方法還採用了虛擬節點的思想。 使用一般的hash函式的話,伺服器的對映地點的分布非常不均勻。 因此,使用虛擬節點的思想,為每個物理節點(伺服器) 在continuum上分配100~200個點。這樣就能抑制分布不均勻, 最大限度地減小伺服器增減時的快取重新分布。
摘自:
分布式快取
分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...
分布式快取
網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...
分布式快取
分布式快取 1 什麼是分布式快取?在高併發的環境下,大量的i o處理與cpu的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會...