您好,登錄后才能下訂單哦!
Redis的三種模式是什么?可能很多人對此沒有深入了解過,故而小編總結了這篇文章,通過這文章的講解,希望你能夠收獲更多知識。
standaloan(單機模式)
standaloan 是redis單機模式,及所有服務連接一臺redis服務,該模式不適用生產。如果發生宕機,內存爆炸,就可能導致所有連接改redis的服務發生緩存失效引起雪崩。
ssentinel(哨兵模式)
redis-Sentinel(哨兵模式)是Redis官方推薦的高可用性(HA)解決方案,當用Redis做Master-slave的高可用方案時,假如master宕機了,Redis本身(包括它的很多客戶端)都沒有實現自動進行主備切換,而Redis-sentinel本身也是一個獨立運行的進程,它能監控多個master-slave集群,發現master宕機后能進行切換
sentinel哨兵如下功能實現
(1)monitoring:監控redis是否正常運行
(2)notification:通知application錯誤信息
(3)failover:當某個master死掉,選擇另外一個slave升級為master,更 新master-slave關系。
(4)configurationprovider:client通過sentinel獲取redis地址,并在failover時更新地址
2、sentinels and slaves autodiscovery(redis2.8及以上)
配置文件中只配置master地址,slave地址和sentinel地址可以自動發現。
(1)sentinels——sentinel之間通過redis pub/sub交換信息獲得。
(2)slaves——詢問master獲得。
3、sdown、odown、failover
故障檢測一般都是通過ping-pong機制,sentinel引入sdown(主觀下線)和odown(客觀下線)機制,目的應該是在集群規模較大時,檢測更客觀
(1)sdwon——is-master-down-after-milliseconds(可配置)時間內ping-pong失敗。sdown的slave不能升級為master。
(2)odown——超過一定數目(可配置)的sentinel認為sdown,odown只針對master。
(3)failover——多數sentinel認為odown。
redis-cluster(集群模式)
redis集群模式,同樣可以實現redis高可用部署,Redis Sentinel集群模式中,隨著業務量和數據量增,到性能達到redis單節點瓶頸,垂直擴容受機器限制,水平擴容涉及對應用的影響以及數據遷移中數據丟失風險。針對這些痛點
Redis3.0推出cluster分布式集群方案,當遇到單節點內存,并發,流量瓶頸是,采用cluster方案實現負載均衡,cluster方案主要解決分片問題,即把整個數據按照規則分成多個子集存儲在多個不同幾點上,每個節點負責自己整個數據的一部分。
Redis Cluster采用哈希分區規則中的虛擬槽分區。虛擬槽分區巧妙地使用了哈希空間,使用分散度良好的哈希函數把所有的數據映射到一個固定范圍內的整數集合,整數定義為槽(slot)。Redis Cluster槽的范圍是0 ~ 16383。槽是集群內數據管理和遷移的基本單位。
采用大范圍的槽的主要目的是為了方便數據的拆分和集群的擴展,每個節點負責一定數量的槽。Redis Cluster采用虛擬槽分區,所有的鍵根據哈希函數映射到0 ~ 16383,計算公式:slot = CRC16(key)&16383。每一個實節點負責維護一部分槽以及槽所映射的鍵值數據。下圖展現一個五個節點構成的集群,每個節點平均大約負責3276個槽,以及通過計算公式映射到對應節點的對應槽的過程。
redis-cluster架構圖
關于Redis的三種模式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。