Redis集群

Redis版本要求:Redis 版本3.0+

Redis Cluster TCP ports

Redis集群的每一個節(jié)點需要兩個端口號差牛,client port和cluster bus port接校,比如6379,16379
端口6379:用于redis client連接
端口16379:用于集群節(jié)點間的交流通信

cluster bus port = client port + 10000,這是固定的

Redis集群數據分片

Redis 集群有16384個哈希槽骡楼,每一個key通過CRC16算法對16384取模,得到相應的槽位
假設集群有如下節(jié)點:

  • 節(jié)點A秕磷, 槽位0 ~ 5500
  • 節(jié)點B锈颗, 槽位5501 ~ 11000
  • 節(jié)點C顷霹, 槽位11001 ~ 16383

如果要增加一個節(jié)點D,則需要從其他節(jié)點A击吱,B淋淀,C拿一些槽位給D;反之覆醇,如果要刪除節(jié)點绅喉,則需要將自身的槽位轉移到其他節(jié)點渠鸽,才能刪除該節(jié)點

Redis集群參數配置

cluster-enabled <yes/no> 是否開啟集群模式
cluster-config-file <filename> 記錄集群配置,方便重啟
cluster-node-timeout <milliseconds> 超時時間

手動創(chuàng)建Redis集群

Redis集群最小配置文件 redis.conf

port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

最小集群最少需要三個master柴罐,建議3master徽缚,3slave

創(chuàng)建步驟如下:

  • 首先執(zhí)行以下命令
mkdir cluster-test
cd cluster-test
mkdir  7001 7002 7003 7004 7005 7006
  • 在每一個目錄下創(chuàng)建相應的 redis.conf 文件

  • 復制redis-server文件到 cluster-test 下

  • 啟動每一個Redis實例

cd 7000
../redis-server ./redis.conf

創(chuàng)建集群

  • 對于Redis5
    復制redis-cli文件到 cluster-test 下

執(zhí)行以下命令

./redis-cli --cluster create 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005  127.0.0.1:7006 \
--cluster-replicas 1

--cluster-replicas 1 表示 每一個master:slave,即一個主節(jié)點有一個從節(jié)點

Redis集群創(chuàng)建成功標志

查詢集群所有節(jié)點

./redis-cli -p 7001 cluster nodes
查詢結果

故障轉移測試

端口7001宕機

./redis-cli -p 7001 debug segfault
// 執(zhí)行結果
Error: Server closed the connection

再重啟7001端口革屠,可以看到原先的端口7005從節(jié)點變成了主節(jié)點


故障轉移效果圖

擴展一個主節(jié)點master

創(chuàng)建7007目錄
創(chuàng)建redis.conf文件
啟動redis實例 ../redis-server ./redis.conf

將7007節(jié)點加入集群

./redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7002
查詢結果

槽位分配

./redis-cli --cluster reshard 127.0.0.1:7005
槽位分配過程
槽位分配結果

增加一個從節(jié)點

// 127.0.0.1:7006  增加的從節(jié)點ip
redis-cli --cluster add-node 127.0.0.1:7006 \
127.0.0.1:7000 --cluster-slave \
 --cluster-master-id \
// 主節(jié)點nodeId
3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e

刪除一個節(jié)點

redis-cli --cluster del-node 127.0.0.1:7001  `<del-node-id>`

注意:
刪除一個master時凿试,其槽位必須為0

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市似芝,隨后出現的幾起案子那婉,更是在濱河造成了極大的恐慌,老刑警劉巖党瓮,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件详炬,死亡現場離奇詭異,居然都是意外死亡寞奸,警方通過查閱死者的電腦和手機呛谜,發(fā)現死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枪萄,“玉大人隐岛,你說我怎么就攤上這事〈煞” “怎么了聚凹?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長齐帚。 經常有香客問我妒牙,道長,這世上最難降的妖魔是什么对妄? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任单旁,我火速辦了婚禮,結果婚禮上饥伊,老公的妹妹穿的比我還像新娘。我一直安慰自己蔫饰,他們只是感情好琅豆,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著篓吁,像睡著了一般茫因。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杖剪,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天冻押,我揣著相機與錄音驰贷,去河邊找鬼。 笑死洛巢,一個胖子當著我的面吹牛括袒,可吹牛的內容都是我干的。 我是一名探鬼主播稿茉,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼锹锰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漓库?” 一聲冷哼從身側響起恃慧,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渺蒿,沒想到半個月后痢士,有當地人在樹林里發(fā)現了一具尸體茂装,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡训唱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了歧强。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摊册。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖白修,靈堂內的尸體忽然破棺而出重斑,到底是詐尸還是另有隱情祖很,我是刑警寧澤假颇,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布蠢琳,位于F島的核電站,受9級特大地震影響泰讽,放射性物質發(fā)生泄漏已卸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕊梧。 院中可真熱鬧肥矢,春花似錦甘改、人聲如沸十艾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愧杯。三九已至力九,卻和暖如春跌前,著一層夾襖步出監(jiān)牢的瞬間陡舅,已是汗流浹背灾炭。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工涛酗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眷蜈,地道東北人酌儒。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像枯途,于是被迫代替她去往敵國和親忌怎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • redis集群分為服務端集群和客戶端分片酪夷,redis3.0以上版本實現了集群機制榴啸,即服務端集群,3.0以下使用客戶...
    hadoop_null閱讀 1,586評論 0 6
  • 前面我們介紹了國人自己開發(fā)的Redis集群方案——Codis晚岭,Codis友好的管理界面以及強大的自動平衡槽位的功能...
    Jackeyzhe閱讀 2,067評論 0 3
  • redis主題 01_Redis介紹和安裝運行02_Jedis的介紹和使用03_Redis數據類型和數據操作的命令...
  • 單機/單點 單點故障/瓶頸:多個節(jié)點負載:面向數據:一變多(一致性<弱一致鸥印,最終一致性>)》可用性最終一致性:一部...
    壹點零閱讀 787評論 0 3
  • 枇杷黃時夏初長 綠暗紅老 晚風猶微涼 經書漫卷思漫飏 一忽兒生 一忽兒亡 崢嶸都平常 怨一場 恨一場 爭一場 斗一...
    黛眉居閱讀 408評論 13 19