1.前言
Redis集群模式主要有2種:
主從集群、分布式集群。
前者主要是為了高可用或是讀寫分離,后者為了更好的存儲數據,負載均衡。
redis集群提供了以下兩個好處
1、將數據自動切分(split)到多個節點
2、當集群中的某一個節點故障時,redis還可以繼續處理客戶端的請求。
一個 redis 集群包含 16384 個哈希槽(hash slot),數據庫中的每個數據都屬于這16384個哈希槽中的一個。集群使用公式 CRC16(key) % 16384 來計算鍵 key 屬于哪個槽。集群中的每一個節點負責處理一部分哈希槽。
集群中的主從復制
集群中的每個節點都有1個至N個復制品,其中一個為主節點,其余的為從節點,如果主節點下線了,集群就會把這個主節點的一個從節點設置為新的主節點,繼續工作。這樣集群就不會因為一個主節點的下線而無法正常工作
注意:
1、如果某一個主節點和他所有的從節點都下線的話,redis集群就會停止工作了。redis集群不保證數據的強一致性,在特定的情況下,redis集群會丟失已經被執行過的寫命令
2、使用異步復制(asynchronous replication)是redis 集群可能會丟失寫命令的其中一個原因,有時候由于網絡原因,如果網絡斷開時間太長,redis集群就會啟用新的主節點,之前發給主節點的數據就會丟失。
2. 主從切換原理
Redis的主從原理與MySQL相似,都是設置兩臺機器,一主一從。也就是常說的熱備與冷備。設置主從的同時,設置兩個哨兵進程,用來檢測主節點是否宕機。若發現主節點宕機,立馬從從節點內選取出合適的節點 作為新的主節點。這點與VIP(虛擬IP技術有點相似)。
3.Redis群集TCP端口
每個Redis群集的節點都需要打開兩個TCP連接,由于這兩個連接就需要兩個端口,分別是用于為客戶端提供服務的常規Redis TCP命令端口(例如6379)以及通過將10000和命令端口相加(10000+6379)而獲得的端口,就是集群端口(例如16379)。
第二個大號端口用于群集總線,即使用二進制協議的節點到節點通信通道。 節點使用群集總線進行故障檢測,配置更新,故障轉移授權等。 客戶端不應嘗試與群集總線端口通信,為了保證Redis命令端口的正常使用,請確保在防火墻中打開這兩個端口,否則Redis群集節點將無法通信。
命令端口和集群總線端口偏移量是固定的,始終為10000。
請注意,為了讓Redis群集正常工作,您需要為每個節點:
1、用于與客戶端進行通信的普通客戶端通信端口(通常為6379)對所有需要到達群集的客戶端以及所有其他群集節點(使用客戶端端口進行密鑰遷移)都是開放的。
2、集群總線端口(客戶端端口+ 10000)必須可從所有其他集群節點訪問。
如果您不打開這兩個TCP端口,則您的群集將無法正常工作。
集群總線使用不同的二進制協議進行節點到節點的數據交換,這更適合于使用很少的帶寬和處理時間在節點之間交換信息。
4.Redis集群和Docker
目前,Redis群集不支持NAT地址環境,并且在IP地址或TCP端口被重新映射的一般環境中。
Docker使用一種叫做端口映射的技術:Docker容器中運行的程序可能會暴露在與程序認為使用的端口不同的端口上。 這對于在同一服務器中同時使用相同端口運行多個容器很有用。
為了使Docker與Redis Cluster兼容,您需要使用Docker的主機聯網模式。 請查看Docker文檔中的 主站蜘蛛池模板: 欧美日韩一区,二区,三区,久久精品 | 亚洲综合视频在线播放 | 国产精品久久久久av | 一级α片免费看刺激高潮视频 | 国产亚洲精品久久久久久网站 | 欧美女同hd | 久久久久久久久久综合 | 国产亚洲美女精品久久久2020 | 精品国产一区二区三区成人影院 | 一本色道久久综合狠狠躁篇适合什么人看 | 欧美一区二区三区中文字幕 | wwwxxx免费视频 | 蜜桃成品人免费视频 | 性aaa| 日韩午夜片 | 黄色片在线免费播放 | 超碰97最新| 亚州精品天堂中文字幕 | 看一级毛片 | 久久人人做 | 一本一本久久a久久精品综合小说 | 羞羞羞羞视频 | 午夜视频在线免费观看 | 天天碰天天操 | 国产精品99久久久久久久vr | 色诱亚洲精品久久久久久 | 在线免费亚洲 | 国产91小视频在线观看 | 一级毛片在线免费播放 | 黄污网站在线观看 | 成年免费视频黄网站在线观看 | 久久最新网址 | 日韩精品羞羞答答 | 久久手机在线视频 | 日韩在线欧美在线 | 欧美一级做性受免费大片免费 | 男女生羞羞视频网站在线观看 | 四虎久草| 欧美成人免费一区二区三区 | 中文字幕在线观看精品 | 久草最新在线 |