分布式快取 Hash演算法

2021-08-31 02:17:09 字數 618 閱讀 9648

[size=large][color=darkblue]一、根據餘數計算分布 hash() mod n[/color][/size]

就是「根據伺服器台數的餘數進行分散」。求得鍵的整數雜湊值,再除以伺服器台數,根據其餘數來選擇伺服器。

[img]

[img]

根據餘數計算分散的缺點

餘數計算的方法簡單,資料的分散性也相當優秀,但也有其缺點。那就是當新增或移除伺服器時,快取重組的代價相當巨大。新增伺服器後,餘數就會產生巨變,這樣就無法獲取與儲存時相同的伺服器,從而影響快取的命中率。

[size=large][color=darkblue]二、一致性雜湊演算法 [/color][/size]

把每台server分成v個虛擬節點,再把所有虛擬節點(n*v)隨機分配到一致性雜湊的圓環上,這樣所有的使用者從自己圓環上的位置順時針往下取到第乙個vnode就是自己所屬節點。當此節點存在故障時,再順時針取下乙個作為替代節點。

[img]

從上圖的狀態中新增一台memcached伺服器。餘數分布式演算法由於儲存鍵的伺服器會發生巨大變化而影響快取的命中率,但consistent hashing中,只有在continuum上增加伺服器的地點逆時針方向的第一台伺服器上的鍵會受到影響。

[img]

分布式快取

分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...

分布式快取

網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...

分布式快取

分布式快取 1 什麼是分布式快取?在高併發的環境下,大量的i o處理與cpu的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會...