單機(jī)版

1、內(nèi)存容量有限 2、處理能力有限 3、無法高可用。
主從復(fù)制版

Redis 的復(fù)制(replication)功能允許用戶根據(jù)一個(gè) Redis 服務(wù)器來創(chuàng)建任意多個(gè)該服務(wù)器的復(fù)制品,其中被復(fù)制的服務(wù)器為主服務(wù)器(master),而通過復(fù)制創(chuàng)建出來的服務(wù)器復(fù)制品則為從服務(wù)器(slave)。 只要主從服務(wù)器之間的網(wǎng)絡(luò)連接正常,主從服務(wù)器兩者會(huì)具有相同的數(shù)據(jù),主服務(wù)器就會(huì)一直將發(fā)生在自己身上的數(shù)據(jù)更新同步 給從服務(wù)器,從而一直保證主從服務(wù)器的數(shù)據(jù)相同。
優(yōu)點(diǎn):
1、master/slave 角色
2、master/slave 數(shù)據(jù)相同
3、降低 master 讀壓力在轉(zhuǎn)交從庫
缺點(diǎn):
無法保證高可用
沒有解決 master 寫的壓力
哨兵模式

Redis sentinel 是一個(gè)分布式系統(tǒng)中監(jiān)控 redis 主從服務(wù)器,并在主服務(wù)器下線時(shí)自動(dòng)進(jìn)行故障轉(zhuǎn)移。其中三個(gè)特性:
監(jiān)控(Monitoring): Sentinel 會(huì)不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。
提醒(Notification): 當(dāng)被監(jiān)控的某個(gè) Redis 服務(wù)器出現(xiàn)問題時(shí), Sentinel 可以通過 API 向管理員或者其他應(yīng)用程序發(fā)送通知。
自動(dòng)故障遷移(Automatic failover): 當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí), Sentinel 會(huì)開始一次自動(dòng)故障遷移操作。
優(yōu)點(diǎn):
保證高可用
監(jiān)控各個(gè)節(jié)點(diǎn)
自動(dòng)故障遷移
缺點(diǎn):
主從模式,切換需要時(shí)間丟數(shù)據(jù)
沒有解決 master 寫的壓力
集群(proxy 型):

Twemproxy 是一個(gè) Twitter 開源的一個(gè) redis 和 memcache 快速/輕量級(jí)代理服務(wù)器; Twemproxy 是一個(gè)快速的單線程代理程序,支持 Memcached ASCII 協(xié)議和 redis 協(xié)議。
特點(diǎn):1、多種 hash 算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins
2、支持失敗節(jié)點(diǎn)自動(dòng)刪除
3、后端 Sharding 分片邏輯對(duì)業(yè)務(wù)透明,業(yè)務(wù)方的讀寫方式和操作單個(gè) Redis 一致
缺點(diǎn):增加了新的 proxy,需要維護(hù)其高可用。
集群(直連型):

從redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用無中心結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存數(shù)據(jù)和整個(gè)集群狀態(tài),每個(gè)節(jié)點(diǎn)都和其他所有節(jié)點(diǎn)連接。
特點(diǎn):
1、無中心架構(gòu)(不存在哪個(gè)節(jié)點(diǎn)影響性能瓶頸),少了 proxy 層。
2、數(shù)據(jù)按照 slot 存儲(chǔ)分布在多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)間數(shù)據(jù)共享,可動(dòng)態(tài)調(diào)整數(shù)據(jù)分布。
3、可擴(kuò)展性,可 線性擴(kuò)展到 1000 個(gè)節(jié)點(diǎn),節(jié)點(diǎn)可動(dòng)態(tài)添加或刪除。
4、高可用性,部分節(jié)點(diǎn)不可用時(shí),集群仍可用。通過增加 Slave 做備份數(shù)據(jù)副本
5、實(shí)現(xiàn)故障自動(dòng) failover,節(jié)點(diǎn)之間通過 gossip 協(xié)議交換狀態(tài)信息,用投票機(jī)制完成 Slave 到 Master 的角色提升。
缺點(diǎn):
1、資源隔離性較差,容易出現(xiàn)相互影響的情況。
2、數(shù)據(jù)通過異步復(fù)制,不保證數(shù)據(jù)的強(qiáng)一致性