一.準備工作
1.下載redis刃鳄,我這里使用的是windows 64位的redis-3.0.504的烁。需要下載Source code (zip)和Redis-x64-3.0.504.zip這兩個文件贴届。
2.Redis-x64-3.0.504.zip是redis編譯好的exe可執(zhí)行文件
文件 | 說明 |
---|---|
redis-benchmark.exe | 測試redis性能工具 |
redis-check-aof.exe | 檢查aof文件工具 |
redis-check-dump.exe | 檢查rdb文件工具 |
redis-cli.exe | 命令行窗口工具 |
redis-server.exe | redis服務(wù)器 |
3.Source code (zip)是redis源碼文件,這個文件主要是使用其中src文件下的redis-trib.rb文件
4.redis-trib.rb文件是用ruby寫的redis cluster的工具哟玷,redis集群的所有操作都可以通過該工具來完成
5.對bat文件的編寫要有一定的了解
二.開始搭建
1. redis.conf配置(只寫出我修改了的屬性)
屬性 | 說明 |
---|---|
port 7001 | 端口為7001 |
save 300 10 | 300秒有10條記錄改變了希停,則將數(shù)據(jù)保存入dump.rdb |
dir ./data | .rdb、.aof诗箍、nodes.conf文件存放地址為與redis-server同級下的data文件夾 |
masterauth 123456 | slave連接主的密碼 |
repl-backlog-size 64mb | repl-backlog-size過小癣籽,會導(dǎo)致主從節(jié)點拉復(fù)制失敗,因為全量復(fù)制的時候滤祖,父節(jié)點的更新(應(yīng)用更新筷狼,主動過期刪除等)會臨時存放在backlog中待全量復(fù)制完成后增量發(fā)到子節(jié)點,必須為此保留足夠的空間匠童。 |
repl-timeout 180 | slave和master之間的復(fù)制超時時間埂材,默認為60s, 推薦設(shè)置為180s |
requirepass 123456 | redis訪問密碼,masterauth要與這個設(shè)置一致 |
appendonly yes | 開啟aof文件保存 |
cluster-enabled yes | 開啟redis集群 |
cluster-config-file nodes.conf | cluster節(jié)點配置文件 |
cluster-node-timeout 15000 | 集群中的節(jié)點能夠失聯(lián)的最大時間汤求,超過這個時間俏险,該節(jié)點就會被認為故障。 |
client-output-buffer-limit (class) (hard limit) (soft limit) (soft seconds) | class : 客戶端種類扬绪,normal竖独、slave、pubsub挤牛。 – mormal:普通的客戶端 – slave: 從庫的復(fù)制客戶端 – pub/sub: 發(fā)布與訂閱的客戶端的 hard limit: 緩沖區(qū)大小的硬性限制莹痢。 soft limit: 緩沖去大小的軟性限制。 soft seconds: 緩沖區(qū)大小達到了(超過)soft limit值的持續(xù)時間。 限制分配的緩沖區(qū)的大小竞膳,防止內(nèi)存無節(jié)制的分配航瞭。參數(shù)的默認值都為0,意思是不做任何限制坦辟。 |
2. 創(chuàng)建redis集群文件夾
1.先創(chuàng)建一個主文件夾刊侯,然后以端口號為名稱創(chuàng)建6個文件夾,官方文檔中提到過
強烈建議使用六個節(jié)點: 其中三個為主節(jié)點锉走, 而其余三個則是各個主節(jié)點的從節(jié)點滨彻。
2.我的目錄結(jié)構(gòu)如圖(cmd中執(zhí)行 tree /f 出現(xiàn)當前文件的目錄結(jié)構(gòu))
└─redis cluster
│ master-ip-port.properties--------主要配置文件
│ node-add.bat---------------------調(diào)用redis-trib.rb的add-node命令創(chuàng)建redis cluster擴展cluster
│ node-check.bat-------------------調(diào)用redis-trib.rb的check命令檢查redis cluster
│ node-del.bat---------------------調(diào)用redis-trib.rb的del-node命令刪除redis cluster節(jié)點
│ node-fix.bat---------------------調(diào)用redis-trib.rb的del-node命令檢查redis cluster
│ node-reshard.bat-----------------調(diào)用redis-trib.rb的reshard命令重新分片redis cluster的slots(槽點)
│ node-slave-add.bat---------------調(diào)用redis-trib.rb的add-node命令添加master的slave
│ remove-data-conf.bat-------------刪除當前文件夾中所有以"master-"為前綴命名的文件夾中啟動配置文件和data文件夾下文件的命令文件
│ startup-allmaster.bat------------啟動當前文件夾中所有以"master-"為前綴命名的文件夾中的redis實例的命令文件
│ startup-cluster.bat--------------調(diào)用redis-trib.rb的create命令創(chuàng)建redis cluster
│
├─master-7001
│ │ redis-server.exe
│ │ redis.conf--------------------啟動配置文件
│ │ startup-master.bat------------單個啟動redis實例文件
│ │
│ ├─conf
│ │ redis.conf----------------原始配置文件
│ │
│ └─data
│ dump.rdb
│ nodes.conf
│
├─master-7002
│ 。挠日。疮绷。。嚣潜。
├─master-7003
│ 冬骚。。懂算。只冻。。
├─master-8001
│ 计技。喜德。。垮媒。舍悯。
├─master-8002
│ 。睡雇。萌衬。。它抱。
├─master-8003
│ 秕豫。。观蓄。混移。。
├─redis-stat-------------------------監(jiān)控redis狀態(tài)的工具
│ help.bat
│ master-ip-port.properties-----監(jiān)控配置文件侮穿,可以直接復(fù)制主配置文件替換
│ redis-stat-0.4.14.jar---------監(jiān)控工具jar包
│ startup-monitor.bat-----------啟動文件
│
├─Redis-x64-3.0.504------------------備用的redis可執(zhí)行文件文件
│ 歌径。。亲茅。沮脖。金矛。
├─Ruby24-x64-------------------------ruby安裝文件,redis-trib.rb放在其中的bin文件夾下勺届,免去安裝ruby的步驟
│ 。娶耍。免姿。。榕酒。
3. 使用方法
1.master-ip-port.properties配置文件參數(shù)說明
參數(shù) | 說明 | 使用該參數(shù)的bat文件 |
---|---|---|
master* | 各redis實例的ip和port | startup-cluster.bat node-slave-add.bat node-del.bat node-check.bat node-add.bat |
replicas | 調(diào)用redis-trib.rb的create命令的replicas參數(shù)胚膊,即每個master的slave個數(shù) | startup-cluster.bat |
add-node* | 擴展redis cluster時的主節(jié)點的ip和port | node-add.bat |
add-slave-node* | 從節(jié)點的ip、port和主節(jié)點的node-id | node-slave-add.bat |
del-node-id* | 要刪除的節(jié)點的node-id | node-del.bat |
有*的參數(shù)表示可以配置多個想鹰,當執(zhí)行bat文件時會循環(huán)參數(shù)執(zhí)行命令
2.redis cluster啟動執(zhí)行順序
- 修改master-ip-port.properties中master*
- remove-data-conf.bat(第一次啟動可以不執(zhí)行此文件)
- startup-allmaster.bat
- startup-cluster.bat
3.增加節(jié)點執(zhí)行順序
- 修改master-ip-port.properties中add-node*
- node-add.bat
- 修改master-ip-port.properties中add-slave-node*
- node-slave-add.bat
- node-reshard.bat
node-reshard.bat執(zhí)行增加時輸入?yún)?shù)
- 第一個:要為添加節(jié)點的添加多少個slots
- 第二個:添加節(jié)點的node-id
- 第三個:all或者目標節(jié)點的node-id
在執(zhí)行添加重新分片時必須注意事項
- 分片的slots很少紊婉,官方舉例在寫負載情況下只分片了100個slots
-
分片的slots很多時,需要redis中沒有值時才會成功辑舷,題主實踐過分片2000喻犁,在有值情況下會報如下錯誤
在被重新分片的節(jié)點的slots時,在某些時候會少分配一個slots何缓,這個問題感覺時redis-trib.rb腳本問題
3.刪除節(jié)點執(zhí)行順序
- 修改master-ip-port.properties中reshard-node*肢础,改為要刪除節(jié)點的ip和port
- node-reshard.bat
- 修改master-ip-port.properties中del-node-id*
- node-del.bat
node-reshard.bat執(zhí)行刪除時輸入?yún)?shù)
第一個:要刪除節(jié)點的slots總和
第二個:接受槽點的節(jié)點node-id
第三個到第N個:要刪除的節(jié)點的node-id,最后輸入done結(jié)尾
最后
附上文件的下載地址
各位老鐵看了下載了都評價下,歡迎拍磚碌廓,還有如果沒有分想下載的可以留下郵箱传轰。