所有預(yù)習(xí)課件8redis集群高可用_第1頁
所有預(yù)習(xí)課件8redis集群高可用_第2頁
所有預(yù)習(xí)課件8redis集群高可用_第3頁
所有預(yù)習(xí)課件8redis集群高可用_第4頁
所有預(yù)習(xí)課件8redis集群高可用_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本課講師:James老師Redis集群高可用一、Redis的分布式RedisCluster是Redis的分布式解決方案,在3.0版本后推出的方案,有效地解決了Redis分布式的需求,當遇到單機內(nèi)存、并發(fā)等瓶頸時,可使用此方案來解決這些問題二、分布式數(shù)據(jù)庫概念分布式數(shù)據(jù)庫把整個數(shù)據(jù)按分區(qū)規(guī)則映射到多個節(jié)點,即把數(shù)據(jù)劃分到多個節(jié)點上,每個節(jié)點負責(zé)整體數(shù)據(jù)的一個子集。比如我們庫有900條用戶數(shù)據(jù),有3個redis節(jié)點,將900條分成3份,分別存入到3個redis節(jié)點900條數(shù)據(jù)分區(qū)規(guī)則redis-1redis-2redis-3三、分區(qū)規(guī)則常見的分區(qū)規(guī)則哈希分區(qū)和順序分區(qū),redis集群使用了哈希分區(qū),順序分區(qū)暫用不到,不做具體說明;

RedisCluster采用了哈希分區(qū)的“虛擬槽分區(qū)”方式(哈希分區(qū)分節(jié)點取余、一致性哈希分區(qū)和虛擬槽分區(qū))。四、虛擬槽分區(qū)槽:slotRedisCluster采用此分區(qū),所有的鍵根據(jù)哈希函數(shù)(CRC16[key]&16383)映射到0-16383槽內(nèi),共16384個槽位,每個節(jié)點維護部分槽及槽所映射的鍵值數(shù)據(jù)哈希函數(shù):Hash()=CRC16[key]&163830~54605461~1092210923~16383reids-1節(jié)點redis-2節(jié)點redis-3節(jié)點槽范圍槽與節(jié)點的關(guān)系五、槽、鍵、數(shù)據(jù)關(guān)系0~54605461~1092110922~16383datadatadataRedisClusterkeyshash(key)用hash函數(shù)將鍵映射到槽,再由槽指向數(shù)據(jù)六、RedisCluster的缺陷a,鍵的批量操作支持有限,比如mset,mget,如果多個鍵映射在不同的槽,就不支持了b,鍵事務(wù)支持有限,當多個鍵分布在不同節(jié)點時無法使用事務(wù),同一節(jié)點是支持事務(wù)c,鍵是數(shù)據(jù)分區(qū)的最小粒度,不能將一個很大的鍵值對映射到不同的節(jié)點d,不支持多數(shù)據(jù)庫,只有0,select0e,復(fù)制結(jié)構(gòu)只支持一層結(jié)構(gòu),一主對應(yīng)一從,不支持樹型結(jié)構(gòu)。七、集群環(huán)境搭建--手動篇6389為6379的從節(jié)點,6390為6380的從節(jié)點,6391為6381的從節(jié)點八、集群搭建-修改配置分別修改6379、6380、7381、6389、6390、6391配置文件以6379為例:

port6379//節(jié)點端口

cluster-enabledyes//開啟集群模式

cluster-node-timeout15000//節(jié)點超時時間

cluster-config-file/usr/local/bin/clustercon/data/nodes-6379.conf//集群內(nèi)部配置文件

其它節(jié)點的配置和這個一致,改端口即可九、集群搭建-服務(wù)啟動分別啟動redis6379、6380、6381、6389、6390、6391節(jié)點./redis-serverclusterconf/redis6379.conf&./redis-serverclusterconf/redis6380.conf&./redis-serverclusterconf/redis6381.conf&./redis-serverclusterconf/redis6389.conf&./redis-serverclusterconf/redis6390.conf&./redis-serverclusterconf/redis6391.conf&十、集群搭建-節(jié)點信息查看1,cd/usr/local/bin/clusterconf/datacatnodes-6379.conf//查看6379節(jié)點ID值2,也可這樣查看節(jié)點狀態(tài)./redis-cli-h192.168.1.111-p6379192.168.1.111:6379>clusternodes3,使用clustermeetipport與各節(jié)點握手,是集群通信的第一步十一、集群搭建-節(jié)點信息查看節(jié)點握手成功后,此時集群處理下線狀態(tài),所有讀寫都被禁止十二、集群搭建-分配槽redis-cli-h192.168.1.111-p6379clusteraddslots{0...5460}redis-cli-h192.168.1.111-p6380clusteraddslots{5641...10922}redis-cli-h192.168.1.111-p6381clusteraddslots{10923...16383}十三、集群搭建-集群映射127.0.0.1:6389>clusterreplicateaf2c99b58aa8a0a8fd82ba594654ce9264ffb9bc127.0.0.1:6390>clusterreplicate2d6e6deb9512324336754b7b3fdf86032445c77c127.0.0.1:6391>clusterreplicate61bd9fbbd3c154da318b502b86b1ee6516b82c17十四、集群環(huán)境搭建--自動篇使用ruby來自動分配槽與主從分配,見redis安裝文檔,建議用此方式完成十五、redis集群健康檢測執(zhí)行:./redis-trib.rbcheck192.168.1.111:6379如此出現(xiàn)了這個問題,6379的5798槽位號被打開了6380:>clustersetslot1180stable;clustersetslot2998stable;clustersetslot11212stable;其它也一樣,分別執(zhí)行修復(fù)完后:十六、集群測試此時修復(fù)后的健康正常;當停掉6379主節(jié)點后,過會從節(jié)點6389變成主節(jié)點十七、集群節(jié)點之間的通信節(jié)點之間采用Gossip協(xié)議進行通信,Gossip協(xié)議就是指節(jié)點彼此之間不斷通信交換信息redis6379redis6380redis6381當主從角色變化或新增節(jié)點,彼此通過ping/pong進行通信知道全部節(jié)點的最新狀態(tài)并達到集群同步十八、集群擴容-新增節(jié)點1,同目錄下新增redis6382.conf、redis6392.conf,并啟動兩個新redis節(jié)點./redis-serverclusterconf/redis6382.conf&./redis-serverclusterconf/redis6392.conf&2,新增主節(jié)點

./redis-trib.rbadd-node192.168.1.111:6382192.168.1.111:63796379是原存在的主節(jié)點,6382是新的主節(jié)點3,添加從節(jié)點redis-trib.rbadd-node--slave--master-id062464bc7590400441fafb63f2192.168.1.111:6392192.168.1.111:6379--slave,表示添加的是從節(jié)點--master-id03ccad2ba5dd1e062464bc7590400441fafb63f2,主節(jié)點的nodeid,在這里是前面新添加的6378的nodeid192.168.1.111:6392,新從節(jié)點192.168.1.111:6379集群原存在的舊節(jié)點4,redis-trib.rbreshard192.168.1.111:6382//重新分配soltHowmanyslotsdoyouwanttomove(from1to16384)?1000//設(shè)置slot數(shù)1000WhatisthereceivingnodeID?464bc7590400441fafb63f2//新節(jié)點nodeidSourcenode#1:all//表示全部節(jié)點重新洗牌十九、集群減縮-刪除節(jié)點從節(jié)點6392刪除步驟:在從節(jié)點中,沒有分配哈希槽,執(zhí)行./redis-trib.rbdel-node192.168.1.111:639265ee465423c925326a5(節(jié)點ID)。從節(jié)點6392從集群中刪除了。主節(jié)點6382刪除步驟:1,槽回收,數(shù)據(jù)轉(zhuǎn)移./redis-trib.rbreshard1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論