redis集群(redis5環(huán)境)

redis3和4需要ruby環(huán)境,redis5已經(jīng)不需要ruby環(huán)境了

redis安裝在兩臺虛擬機上烦却,一臺虛擬機有三個實例家厌,master上是三個主,node上是三個從致扯。

在master上

cd   /usr/local
#創(chuàng)建三個實例目錄
mkdir redis700{0,1,2}
#復制配置文件
for i in 0 1 2;do cp /usr/local/redis-5.0.4/redis.conf /usr/local/redis700$i;done
#復制啟動命令
for i in 0 1 2;do cp /usr/local/redis-5.0.4/src/redis-server /usr/local/redis700$i;done
#創(chuàng)建日志目錄文件
for i in 0 1 2;do mkdir -p  /usr/local/redis700$i/log;done        
for i in 0 1 2;do touch  /usr/local/redis700$i/log/redis.log;done
#備份配置文件
for i in 0 1 2;do cp /usr/local/redis700$i/redis.conf /usr/local/redis700$i/redis.conf.bak;done
#去掉空行以及注釋
for i in 0 1 2;do sed -ri "/#|^$/d" /usr/local/redis700$i/redis.conf ;done
#修改綁定ip
for i in 0 1 2;do sed -ri "s#127.0.0.1#192.168.100.150#g" /usr/local/redis700$i/redis.conf ;done
#修改配置文件關于6379默認端口的配置
for i in 0 1 2;do sed -i "s#6379#700$i#g" /usr/local/redis700$i/redis.conf ;done
#手動添加日志文件位置logfile "/usr/local/redis7000/log/redis.log"
#設置后臺啟動redis
for i in 0 1 2;do sed -i  "s#daemonize no#daemonize yes#g" /usr/local/redis700$i/redis.conf ;done 
#設置redis訪問密碼
for i in 0 1 2;do echo "requirepass root" >> /usr/local/redis700$i/redis.conf ;done
#設置主從訪問密碼
for i in 0 1 2;do echo "masterauth  root" >> /usr/local/redis700$i/redis.conf ;done
重點來了:master配置集群參數(shù)配置
#開啟集群
for i in 0 1 2;do echo "cluster-enabled  yes" >> /usr/local/redis700$i/redis.conf ;done
#集群的配置
for i in 0 1 2;do echo "cluster-config-file  nodes.conf" >> /usr/local/redis700$i/redis.conf ;done
#設置請求超時時間默認15s
for i in 0 1 2;do echo "cluster-node-timeout  15000  " >> /usr/local/redis700$i/redis.conf ;done

在node上

#復制配置文件
for i in 3 4 5;do cp /usr/local/redis-5.0.4/redis.conf /usr/local/redis700$i;done
#復制啟動命令
for i in 3 4 5;do cp /usr/local/redis-5.0.4/src/redis-server /usr/local/redis700$i;done
#創(chuàng)建日志目錄文件
for i in 3 4 5;do mkdir -p  /usr/local/redis700$i/log;done        
for i in 3 4 5;do touch  /usr/local/redis700$i/log/redis.log;done
#備份配置文件
for i in 3 4 5;do cp /usr/local/redis700$i/redis.conf /usr/local/redis700$i/redis.conf.bak;done
#去掉空行以及注釋
for i in 3 4 5;do sed -ri "/#|^$/d" /usr/local/redis700$i/redis.conf ;done
#修改綁定ip
for i in 3 4 5;do sed -ri "s#127.0.0.1#192.168.100.151#g" /usr/local/redis700$i/redis.conf ;done
#修改配置文件關于6379默認端口的配置
for i in 3 4 5;do sed -i "s#6379#700$i#g" /usr/local/redis700$i/redis.conf ;done
#手動添加日志文件位置logfile "/usr/local/redis7000/log/redis.log"
#設置后臺啟動redis
for i in 3 4 5;do sed -i  "s#daemonize no#daemonize yes#g" /usr/local/redis700$i/redis.conf ;done 
#設置redis訪問密碼
for i in 3 4 5 ;do echo "requirepass root" >> /usr/local/redis700$i/redis.conf ;done
#設置主從訪問密碼
for i in 3 4 5;do echo "masterauth  root" >> /usr/local/redis700$i/redis.conf ;done
node服務器上:從節(jié)點配置集群參數(shù)
#開啟集群
for i in 3 4 5;do echo "cluster-enabled  yes" >> /usr/local/redis700$i/redis.conf ;done
#集群的配置
for i in 3 4 5;do echo "cluster-config-file  nodes.conf" >> /usr/local/redis700$i/redis.conf ;done
#設置請求超時時間默認15s
for i in 3 4 5;do echo "cluster-node-timeout  15000  " >> /usr/local/redis700$i/redis.conf ;done

其實所有的配置都是相同的肤寝,只是修改對應的ip和端口即可

啟動應用

此處注意,不能用全路徑啟動抖僵,否則只能啟動最先啟動的內容:/usr/local/redis7000/redis-server /usr/local/redis7001/redis.conf,這樣啟動只能啟動一個實例

如何正常啟動呢缘揪?

使用./redis-server ./redis.conf方式可以正常啟動

#master上執(zhí)行
for i in 0 1 2;do cd /usr/local/redis700$i&&./redis-server ./redis.conf ;done
#node上執(zhí)行
for i in 3 4 5;do cd /usr/local/redis700$i&&./redis-server ./redis.conf ;done 

創(chuàng)建集群

redis5使用redis-cli創(chuàng)建集群

cp /usr/local/redis-5.0.4/src/redis-cli  /usr/bin
redis-cli  -a root --cluster create 192.168.100.150:7000 192.168.100.150:7001 192.168.100.150:7002 192.168.100.151:7003 192.168.100.151:7004 192.168.100.151:7005 --cluster-replicas 1 

需要-a指定密碼

redis-cli命令

#查看命令文檔
redis-cli --cluster help
#登錄機器
redis-cli -h 機器地址 -p 端口 -a 集群密碼
#檢查集群狀態(tài)slots詳細分配
redis-cli --cluster check ip:port -a root
#修復集群
redis-cli --cluster  fix ip:port  -a root
#redis添加master
redis-cli --cluster add-node 新的ip:port   已存在的ip:port -a root
#新加入的master沒有劃分槽位耍群,需要重新劃分
redis-cli --cluster reshard  新masterip:port -a root
1.然后根據(jù)提示,輸入新集群需要的槽位數(shù)量
2.輸入新集群id
3.輸入all找筝,重新分配
節(jié)點id是登錄到集群中使用CLUSTER NODES查看到的第一列內容
#redis刪除master節(jié)點
redis刪除master節(jié)點蹈垢,需要給當前master的槽位劃分到別的master上
redis-cli --cluster reshard  除了需要刪除的master的任意ip:port  -a root
1.輸入當前master的id
2.輸入需要刪除的master的id作為槽位重新分配的源槽位
3.done執(zhí)行
4.重新刪除空的master即可redis-cli --cluster del-node  master的ip:port  -a  root
#redis添加slave
redis-cli --cluster   add-node  新的slave的ip:port  已存在ip:port --cluster-slave --cluster-master-id需要加入的master的id  -a root
#redis刪除從節(jié)點
redis-cli --cluster del-node 節(jié)點ip:port 節(jié)點id  -a root

集群的客戶端命令

cluster info :打印集群的信息
cluster nodes :列出集群當前已知的所有節(jié)點( node),以及這些節(jié)點的相關信息袖裕。
節(jié)點
cluster meet <ip> <port> :將 ip 和 port 所指定的節(jié)點添加到集群當中曹抬,讓它成為集群的一份子。
cluster forget <node_id> :從集群中移除 node_id 指定的節(jié)點急鳄。
cluster replicate <node_id> :將當前節(jié)點設置為 node_id 指定的節(jié)點的從節(jié)點谤民。
cluster saveconfig :將節(jié)點的配置文件保存到硬盤里面堰酿。
槽(slot)
cluster addslots <slot> [slot ...] :將一個或多個槽( slot)指派( assign)給當前節(jié)點。
cluster delslots <slot> [slot ...] :移除一個或多個槽對當前節(jié)點的指派张足。
cluster flushslots :移除指派給當前節(jié)點的所有槽触创,讓當前節(jié)點變成一個沒有指派任何槽的節(jié)點。
cluster setslot <slot> node <node_id> :將槽 slot 指派給 node_id 指定的節(jié)點为牍,如果槽已經(jīng)指派給
另一個節(jié)點哼绑,那么先讓另一個節(jié)點刪除該槽>,然后再進行指派碉咆。
cluster setslot <slot> migrating <node_id> :將本節(jié)點的槽 slot 遷移到 node_id 指定的節(jié)點中抖韩。
cluster setslot <slot> importing <node_id> :從 node_id 指定的節(jié)點中導入槽 slot 到本節(jié)點。
cluster setslot <slot> stable :取消對槽 slot 的導入( import)或者遷移( migrate)疫铜。
鍵
cluster keyslot <key> :計算鍵 key 應該被放置在哪個槽上茂浮。
cluster countkeysinslot <slot> :返回槽 slot 目前包含的鍵值對數(shù)量。
cluster getkeysinslot <slot> <count> :返回 count 個 slot 槽中的鍵  

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末块攒,一起剝皮案震驚了整個濱河市励稳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囱井,老刑警劉巖驹尼,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異庞呕,居然都是意外死亡新翎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門住练,熙熙樓的掌柜王于貴愁眉苦臉地迎上來地啰,“玉大人,你說我怎么就攤上這事讲逛】髁撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵盏混,是天一觀的道長蔚鸥。 經(jīng)常有香客問我,道長许赃,這世上最難降的妖魔是什么止喷? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮混聊,結果婚禮上弹谁,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好预愤,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布沟于。 她就那樣靜靜地躺著,像睡著了一般鳖粟。 火紅的嫁衣襯著肌膚如雪社裆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天向图,我揣著相機與錄音泳秀,去河邊找鬼。 笑死榄攀,一個胖子當著我的面吹牛嗜傅,可吹牛的內容都是我干的。 我是一名探鬼主播檩赢,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼吕嘀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贞瞒?” 一聲冷哼從身側響起偶房,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎军浆,沒想到半個月后棕洋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡乒融,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年掰盘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赞季。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡愧捕,死狀恐怖,靈堂內的尸體忽然破棺而出申钩,到底是詐尸還是另有隱情次绘,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布撒遣,位于F島的核電站断盛,受9級特大地震影響,放射性物質發(fā)生泄漏愉舔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一伙菜、第九天 我趴在偏房一處隱蔽的房頂上張望轩缤。 院中可真熱鬧,春花似錦、人聲如沸火的。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馏鹤。三九已至征椒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間湃累,已是汗流浹背勃救。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留治力,地道東北人蒙秒。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像宵统,于是被迫代替她去往敵國和親晕讲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內容