天天看點

Redis部署模式

單機版

Redis部署模式

特點:簡單

問題:

1、記憶體容量有限 2、處理能力有限 3、無法高可用。

主從複制

Redis部署模式

Redis 的複制(replication)功能允許使用者根據一個 Redis 伺服器來建立任意多個該伺服器的複制品,其中被複制的伺服器為主伺服器(master),而通過複制建立出來的伺服器複制品則為從伺服器(slave)。 隻要主從伺服器之間的網絡連接配接正常,主從伺服器兩者會具有相同的資料,主伺服器就會一直将發生在自己身上的資料更新同步 給從伺服器,進而一直保證主從伺服器的資料相同。

特點:

1、master/slave 角色

2、master/slave 資料相同

3、降低 master 讀壓力在轉交從庫

問題:

無法保證高可用

沒有解決 master 寫的壓力

哨兵

Redis部署模式

Redis sentinel 是一個分布式系統中監控 redis 主從伺服器,并在主伺服器下線時自動進行故障轉移。其中三個特性:

監控(Monitoring):    Sentinel  會不斷地檢查你的主伺服器和從伺服器是否運作正常。

提醒(Notification): 當被監控的某個 Redis 伺服器出現問題時, Sentinel 可以通過 API 向管理者或者其他應用程式發送通知。

自動故障遷移(Automatic failover): 當一個主伺服器不能正常工作時, Sentinel 會開始一次自動故障遷移操作。

特點:

1、保證高可用

2、監控各個節點

3、自動故障遷移

缺點:主從模式,切換需要時間丢資料

沒有解決 master 寫的壓力

叢集(proxy 型):

Redis部署模式

Twemproxy 是一個 Twitter 開源的一個 redis 和 memcache 快速/輕量級代理伺服器; Twemproxy 是一個快速的單線程代理程式,支援 Memcached ASCII 協定和 redis 協定。

特點:1、多種 hash 算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins 

2、支援失敗節點自動删除

3、後端 Sharding 分片邏輯對業務透明,業務方的讀寫方式和操作單個 Redis 一緻

缺點:增加了新的 proxy,需要維護其高可用。

failover 邏輯需要自己實作,其本身不能支援故障的自動轉移可擴充性差,進行擴縮容都需要手動幹預

叢集(直連型):

Redis部署模式

從redis 3.0之後版本支援redis-cluster叢集,Redis-Cluster采用無中心結構,每個節點儲存資料和整個叢集狀态,每個節點都和其他所有節點連接配接。

特點:

1、無中心架構(不存在哪個節點影響性能瓶頸),少了 proxy 層。

2、資料按照 slot 存儲分布在多個節點,節點間資料共享,可動态調整資料分布。

3、可擴充性,可線性擴充到 1000 個節點,節點可動态添加或删除。

4、高可用性,部分節點不可用時,叢集仍可用。通過增加 Slave 做備份資料副本

5、實作故障自動 failover,節點之間通過 gossip 協定交換狀态資訊,用投票機制完成 Slave到 Master 的角色提升。

缺點:

1、資源隔離性較差,容易出現互相影響的情況。

2、資料通過異步複制,不保證資料的強一緻性

繼續閱讀