redis集群

14. Redis集群

14.1 集群

Redis在3.0后開始支持Cluster(模式)模式,目前redis的集群支持節(jié)點的自動發(fā)現(xiàn),支持slave-master選舉和容錯,支持在線分片(sharding shard )等特性俊柔。reshard

14.2 集群架構圖

wpsgRnQP8.jpg

14.3 集群細節(jié)

- 所有的redis節(jié)點彼此互聯(lián)(PING-PONG機制),內(nèi)部使用二進制協(xié)議優(yōu)化傳輸速度和帶寬.
- 節(jié)點的fail是通過集群中超過半數(shù)的節(jié)點檢測失效時才生效. 
- 客戶端與redis節(jié)點直連,不需要中間proxy層.客戶端不需要連接集群所有節(jié)點,連接集群中任何一個可用節(jié)點即可
- redis-cluster把所有的物理節(jié)點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value
image.png

如上圖所示官套,客戶端連接任意一個可用節(jié)點适刀,發(fā)送數(shù)據(jù),通過CRC16算出key的結(jié)果儡循,重定向到包含此key結(jié)果的slot槽的取值范圍的Node節(jié)點中弓颈。

14.4 集群搭建

判斷一個是集群中的節(jié)點是否可用,是集群中的所用主節(jié)點選舉過程,如果半數(shù)以上的節(jié)點認為當前節(jié)點掛掉,那么當前節(jié)點就是掛掉了,所以搭建redis集群時建議節(jié)點數(shù)最好為奇數(shù)疙挺,搭建集群至少需要三個主節(jié)點,三個從節(jié)點,至少需要6個節(jié)點

# 1.準備環(huán)境安裝ruby以及redis集群依賴
- yum install -y ruby rubygems
- gem install redis-xxx.gem

第一步:yum install -y ruby rubygems
image.png
第二步:將redis-3.2.1.gem上傳到服務器荣德,gem install redis-3.2.1.gem
image-20200627193348905.png

image.png
# 2.在一臺機器創(chuàng)建7個目錄
image-20200627193849867.png
# 3.每個目錄復制一份配置文件
[root@localhost ~]# cp redis-4.0.10/redis.conf 7000/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7001/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7002/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7003/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7004/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7005/
[root@localhost ~]# cp redis-4.0.10/redis.conf 7006/
image-20200627194103354.png
# 4.修改不同目錄配置文件
- port  6379 .....                       //修改端口
- bind  0.0.0.0                          //開啟遠程連接
- cluster-enabled  yes                       //開啟集群模式
- cluster-config-file  nodes-port.conf //集群節(jié)點配置文件
- cluster-node-timeout  5000           //集群節(jié)點超時時間
- appendonly  yes                          //開啟AOF持久化
- daemonize yes                            //開啟守護線程,就是沒有啟動窗口
- dbfilename dump-7000.rdb         //7000是端口號童芹,因為我們這里是在一臺機器上啟動集群涮瞻。
- appendfilename "appendonly-7000.aof"  //7000是端口號,每個aof文件改成自己的標示假褪。

# 5.指定不同目錄配置文件啟動七個節(jié)點
- [root@localhost bin]# ./redis-server  /root/7000/redis.conf
- [root@localhost bin]# ./redis-server  /root/7001/redis.conf
- [root@localhost bin]# ./redis-server  /root/7002/redis.conf
- [root@localhost bin]# ./redis-server  /root/7003/redis.conf
- [root@localhost bin]# ./redis-server  /root/7004/redis.conf
- [root@localhost bin]# ./redis-server  /root/7005/redis.conf
- [root@localhost bin]# ./redis-server  /root/7006/redis.conf
image-20200627194913866.png
# 6.查看進程
- [root@localhost bin]# ps aux|grep redis
image-20200627194954143.png

1.創(chuàng)建集群

# 1.復制集群操作腳本到bin目錄中
- [root@localhost bin]# cp /root/redis-4.0.10/src/redis-trib.rb .
或者
-[root@localhost src]# cp redis-trib.rb /usr/redis/bin/

# 2.創(chuàng)建集群
- ./redis-trib.rb create --replicas 1 192.168.202.205:7000 192.168.202.205:7001 192.168.202.205:7002 192.168.202.205:7003 192.168.202.205:7004 192.168.202.205:7005

image.png
image-20200627195601307.png
# 3.集群創(chuàng)建成功出現(xiàn)如下提示
image-20200627195647767.png

客戶端連接集群:
進入redis的bin目錄:
[root@localhost bin]# ./redis-cli -p 7000 -c

./redis-cli -p 7000 -c

2.查看集群狀態(tài)

# 1.查看集群狀態(tài) check [原始集群中任意節(jié)點] [無]
- ./redis-trib.rb check 192.168.202.205:7000

# 2.集群節(jié)點狀態(tài)說明
- 主節(jié)點 
    主節(jié)點存在hash slots,且主節(jié)點的hash slots 沒有交叉
    主節(jié)點不能刪除
    一個主節(jié)點可以有多個從節(jié)點
    主節(jié)點宕機時多個副本之間自動選舉主節(jié)點

- 從節(jié)點
    從節(jié)點沒有hash slots
    從節(jié)點可以刪除
    從節(jié)點不負責數(shù)據(jù)的寫,只負責數(shù)據(jù)的同步

3.添加主節(jié)點

# 1.添加主節(jié)點 add-node [新加入節(jié)點] [原始集群中任意節(jié)點]
- ./redis-trib.rb  add-node 192.168.1.158:7006  192.168.1.158:7005
- 注意:
    1.該節(jié)點必須以集群模式啟動
    2.默認情況下該節(jié)點就是以master節(jié)點形式添加

4.添加從節(jié)點

# 1.添加從節(jié)點 add-node --slave [新加入節(jié)點] [集群中任意節(jié)點]
- ./redis-trib.rb  add-node --slave 192.168.1.158:7006 192.168.1.158:7000
- 注意:
    當添加副本節(jié)點時沒有指定主節(jié)點,redis會隨機給副本節(jié)點較少的主節(jié)點添加當前副本節(jié)點
    
# 2.為確定的master節(jié)點添加主節(jié)點 add-node --slave --master-id master節(jié)點id [新加入節(jié)點] [集群任意節(jié)點]
- ./redis-trib.rb  add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 127.0.0.1:7006  127.0.0.1:7000

5.刪除副本節(jié)點

# 1.刪除節(jié)點 del-node [集群中任意節(jié)點] [刪除節(jié)點id]
- ./redis-trib.rb  del-node 127.0.0.1:7002 0ca3f102ecf0c888fc7a7ce43a13e9be9f6d3dd1
- 注意:
 1.被刪除的節(jié)點必須是從節(jié)點或沒有被分配hash slots的節(jié)點

6.集群在線分片

# 1.在線分片 reshard [集群中任意節(jié)點] [無]
- ./redis-trib.rb  reshard  192.168.1.158:7000

Springboot整合redis集群

spring.redis.cluster.nodes=192.168.159.2:7000,192.168.159.2:7001,192.168.159.2:7002,192.168.159.2:7003,192.168.159.2:7004,192.168.159.2:7005,192.168.159.2:7006
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末署咽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宁否,老刑警劉巖窒升,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異慕匠,居然都是意外死亡饱须,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門台谊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蓉媳,“玉大人,你說我怎么就攤上這事青伤《搅” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵狠角,是天一觀的道長号杠。 經(jīng)常有香客問我,道長丰歌,這世上最難降的妖魔是什么姨蟋? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮立帖,結(jié)果婚禮上眼溶,老公的妹妹穿的比我還像新娘。我一直安慰自己晓勇,他們只是感情好堂飞,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绑咱,像睡著了一般绰筛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上描融,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天铝噩,我揣著相機與錄音,去河邊找鬼窿克。 笑死骏庸,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的年叮。 我是一名探鬼主播具被,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼只损!你這毒婦竟也來了硬猫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啸蜜,沒想到半個月后坑雅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡衬横,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年裹粤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜂林。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡遥诉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出噪叙,到底是詐尸還是另有隱情矮锈,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布睁蕾,位于F島的核電站苞笨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏子眶。R本人自食惡果不足惜瀑凝,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望臭杰。 院中可真熱鬧粤咪,春花似錦、人聲如沸渴杆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽磁奖。三九已至囊拜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間点寥,已是汗流浹背艾疟。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工来吩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敢辩,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓弟疆,卻偏偏與公主長得像戚长,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子怠苔,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容