Redis提供了復(fù)制功能。當庫中的redis 數(shù)據(jù)發(fā)生變化時,此變化會自動同步到其他redis機器,數(shù)據(jù) Partition,Mass數(shù)據(jù)Storage Redis的部署不需要其他代理或工具,rediscus和獨立的Redis幾乎完全兼容。
Cache好處:高性能 高并發(fā)數(shù)據(jù)庫查詢需要800ms,其他用戶再次查詢同樣的數(shù)據(jù)假設(shè)10分鐘內(nèi)數(shù)據(jù)沒有變化,10分鐘內(nèi)有10000個。然后每個1000的用戶,大家都覺得查詢這個很慢數(shù)據(jù)比如某個商品的信息一天不會變,但是每次查詢這個商品需要2s,mysql單機一天瀏覽100次就2000qps。
所謂高可用性,也叫HA(HighAvailability),是分布式系統(tǒng)架構(gòu)設(shè)計中必須考慮的因素之一,是保證系統(tǒng)SLA的重要指標。Redis高可用主要有三種模式:主從模式、哨兵模式和集群模式。Redis提供了復(fù)制功能。當庫中的redis 數(shù)據(jù)發(fā)生變化時,此變化會自動同步到其他redis機器。
一般主節(jié)點可以讀寫,從節(jié)點只能讀。一個主節(jié)點可以有多個從節(jié)點,但是一個從節(jié)點只會有一個主節(jié)點,也就是所謂的一主多從結(jié)構(gòu)。支持主從復(fù)制,主會自動同步數(shù)據(jù)到從,做到讀寫分離;主設(shè)備以非阻塞的方式向主從設(shè)備提供服務(wù)。因此,在主從同步過程中,客戶端仍然可以提交查詢或修改請求;從機也以非阻塞方式完成數(shù)據(jù)同步。
如果一個Redis服務(wù)關(guān)閉,該服務(wù)將不可用。為了解決這個問題,redis還提供了集群服務(wù)。傳統(tǒng)Redis 集群采用主從復(fù)制模式,一般是一個主,多個從。主節(jié)點有讀寫權(quán)限,而從節(jié)點只有讀權(quán)限。主節(jié)點會定期將數(shù)據(jù)同步到從節(jié)點,以保證數(shù)據(jù)的一致性。這個集群 mode的運行存在一些問題:Redis的哨兵機制是為了解決主從復(fù)制的缺陷(選舉問題),解決問題保證我們Redis的高可用性,實現(xiàn)自動故障發(fā)現(xiàn)和故障轉(zhuǎn)移。
哨兵服務(wù)的工作原理如下:demo 集群使用1個主2個從,使用pseudo 集群在虛擬機中啟動。端口暫定為6381、6382、6383和集群??梢赃x擇以下兩種結(jié)構(gòu),因為數(shù)量少。主節(jié)點的配置文件與單機相同,主要修改與主節(jié)點基本相似,但增加了slaveof配置和主節(jié)點賬戶密碼。