Redis 集群(qun)(qun)中(zhong)(zhong)不存在中(zhong)(zhong)心(central)節(jie)點或者代理(proxy)節(jie)點, 集群(qun)(qun)的(de)其中(zhong)(zhong)一(yi)個(ge)主要設計目標是達到線(xian)性可擴展(zhan)性(linear scalability)。
Redis 集群提供了一種運行 Redis 的方式,其中數據在多個 Redis 節(jie)點間(jian)自動分區。Redis 集群還(huan)在分區期間(jian)提供一定程(cheng)度的可用性,即在實際情況下能夠在某些(xie)節(jie)點發(fa)生故(gu)障或無法通信時繼續運行。但是(shi),如(ru)果發(fa)生較大故(gu)障(例如(ru),大多數主(zhu)站不可用時),集群會停止運行。
Redis集群模型:
Redis集群實現了哪些目標?
● 在1000個(ge)節點的時(shi)候仍能(neng)表現(xian)得(de)很好并且可(ke)擴展性(xing)(scalability)是(shi)線性(xing)的。集(ji)群之間使(shi)用異步(bu)復制,并且沒有合(he)并的操作。
● 可接受(shou)的寫(xie)入(ru)安全(quan)(Write safety)級別:那些與(yu)大多數節(jie)點(dian)相連的客戶端(duan)所(suo)做的寫(xie)入(ru)操作,系統(tong)嘗(chang)試(shi)全(quan)部(bu)都(dou)保存下來。不過還是會有(you)小部(bu)分(fen)寫(xie)入(ru)會丟(diu)失。
● 可(ke)(ke)用性(xing)(Availability):在絕大多數的(de)主節(jie)點(dian)(master node)是可(ke)(ke)達的(de),并且對于每一(yi)(yi)個不可(ke)(ke)達的(de)主節(jie)點(dian)都至少有(you)一(yi)(yi)個它的(de)從節(jie)點(dian)(slave)可(ke)(ke)達的(de)情況下,Redis 集群(qun)仍能進行分區(partitions)操作。