一、安裝前看下redis5.0版本的新特性
先看一下 Redis 5 帶來(lái)的更新內(nèi)容:
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到湘西土家族網(wǎng)站設(shè)計(jì)與湘西土家族網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋湘西土家族地區(qū)。redis-cli --cluster help
命令以了解更多信息將 Lua 腳本更好地傳播到 replicas / AOF
Lua 腳本現(xiàn)在可以超時(shí)并在副本中進(jìn)入 -BUSY 狀態(tài)
Redis 5 是 Redis 引入流數(shù)據(jù)類(lèi)型(Stream data type)的第一個(gè)版本。按照官方的說(shuō)法,不使用該特性的用戶(hù)在生產(chǎn)環(huán)境中使用 Redis 5 會(huì)有更好的體驗(yàn) —— 雖然開(kāi)發(fā)團(tuán)隊(duì)尚未發(fā)現(xiàn)關(guān)于這項(xiàng)特性的關(guān)鍵錯(cuò)誤。
此外,因?yàn)樵S多內(nèi)部結(jié)構(gòu)與 Redis 4 共享,因此在內(nèi)部工作方式方面,變化不會(huì)很大。
詳細(xì)更新內(nèi)容請(qǐng)查看:
https://raw.githubusercontent.com/antirez/redis/5.0/00-RELEASENOTES
二、安裝redis部分
1、環(huán)境
linux系統(tǒng) centos 7.6版本
redis: redis5.0.5的 statble版本(redis-stable.tar.gz)
2、下載解壓安裝
#下載
wget http://download.redis.io/releases/redis-stable.tar.gz
#解壓
tar xzf redis-stable.tar.gz
#進(jìn)入解壓文件
cd redis-stable
#編譯源碼
make install
#測(cè)試是否安裝成功
啟動(dòng)成功表示安裝成功
上面只是一個(gè)臨時(shí)的啟動(dòng)文件,需要一直連接需要改配置文件,順便集群的配置也一起設(shè)置了。
2、配置redis cluster集群
redis集群可以參考官網(wǎng)給出的教程https://redis.io/topics/cluster-tutorial
首先要復(fù)制多分redis.conf文件,修改以下配置,注意將端口號(hào)區(qū)分開(kāi)
cat /data/redis-cluster/cluster-conf/7000/redis.conf | grep -v '#'
只貼出部分差異配置,其他的都用系統(tǒng)默認(rèn)的,有需要自行更改。
配置里有不同目錄的自行創(chuàng)建, 也可以根據(jù)你自己想要求更改不同路徑下的。
bind 127.0.0.1
port 7000
pidfile /var/run/redis_7000.pid
logfile "/data/redis-cluster/redis-log/redis_7000.log"
dbfilename dump_7000.rdb
dir /data/redis-cluster/rdb/
appendonly yes
appendfilename "appendonly_7000.aof"
appendfsync everysec
mkdir -p /data/redis-cluster/cluster-conf
cd /data/redis-cluster/cluster-conf
mkdir 7000 7001 7002 7003 7004 7005
#先根據(jù)上面的配置修改一份7000/redis.conf的配置,初始的文件從redis-stable/src/redis.conf復(fù)制一份來(lái)做修改。
然后/data/redis-cluster/cluster-conf/7000/redis.conf的配置復(fù)制一份并替換不同端口目錄下的配置文件
cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7001/redis.conf
cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7002/redis.conf
cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7003/redis.conf
cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7004/redis.conf
cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7005/redis.conf
然后再將對(duì)應(yīng)的配置文件放入進(jìn)去后 啟動(dòng)每個(gè)服務(wù)
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7000/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7001/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7002/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7003/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7004/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7005/redis.conf
#7000-7005服務(wù)啟動(dòng)成功后,使用5.0特有的redis-cli功能開(kāi)啟集群
/usr/local/bin/redis-cli --cluster create 127.0.0.1:7000 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 --cluster-replicas 1
?
這樣集群就起來(lái)了。
為了方便啟動(dòng),可以放一個(gè)腳本里啟動(dòng)。如下腳本
[root@VM_0_6_centos src]# cat /data/redis-cluster/cluster-conf/start_all.sh
#!/bin/bash
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7000/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7001/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7002/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7003/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7004/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7005/redis.conf
/usr/local/bin/redis-cli --cluster create 127.0.0.1:7000 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 --cluster-replicas 1
到這里就啟動(dòng)了redis集群
三、查看且添加新集群
相關(guān)命令參考:https://redis.io/topics/cluster-tutorial
1、查看集群里的master是哪些
redis-cli -p 7000 cluster nodes | grep master
2、查看集群哪些是slave
redis-cli -p 7000 cluster nodes | grep slave
3、查看哪些對(duì)應(yīng)connected
redis-cli -p 7000 cluster nodes | grep myself
redis-cli -p 7001 cluster nodes | grep myself
redis-cli -p 7002 cluster nodes | grep myself
4、添加新的master和slave
先創(chuàng)建兩個(gè)服務(wù)7006 7007的, 具體文件配置參考上面的7000-7005的
配置好對(duì)應(yīng)的文件后用命令啟動(dòng)
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7006/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7007/redis.conf
因?yàn)樯厦鎲?dòng)沒(méi)有加入到集群里,需要通過(guò)集群命令進(jìn)行加入
加入集群命令
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
另外一個(gè)新添加的slave也要加入對(duì)應(yīng)的master上
#自動(dòng)匹配空閑的 加入到對(duì)應(yīng)的master上
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave
或者根據(jù)指定的master ID 匹配上
#set master
#redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id e508a26956ca359d1917cfd1f3dbb9a9fdd8c28f
---e508a26956ca359d1917cfd1f3dbb9a9fdd8c28f 通過(guò)redis-cli -p 7000 cluster nodes | grep master 可查看到對(duì)應(yīng)7006的master id.
四、重啟集群和重建集群
重啟:
(保留原有集群的)重啟:
不需要再執(zhí)行(如/usr/local/bin/redis-cli -a 'Good' --cluster create 172.17.0.6:7000 172.17.0.6:7001 172.17.0.6:7002 172.17.0.6:7003 172.17.0.6:7004 172.17.0.6:7005 172.17.0.6:7006 172.17.0.6:7007 --cluster-replicas 1這樣的)集群生成指令。
第一步:先關(guān)閉各個(gè)Redis節(jié)點(diǎn)。
第二步:再啟動(dòng)各個(gè)Redis節(jié)點(diǎn)即可。
(刪除原有集群的)重啟:
需要執(zhí)行(如/usr/local/bin/redis-cli -a 'Good' --cluster create 172.17.0.6:7000 172.17.0.6:7001 172.17.0.6:7002 172.17.0.6:7003 172.17.0.6:7004 172.17.0.6:7005 172.17.0.6:7006 172.17.0.6:7007 --cluster-replicas 1這樣的)集群生成指令。
第一步:先關(guān)閉各個(gè)Redis節(jié)點(diǎn)。
第二步:刪除各個(gè)Redis安裝目錄下的節(jié)點(diǎn)配置文件nodes.conf、數(shù)據(jù)文件dump.rdb。
說(shuō)明:此方式相當(dāng)于重置到剛剛創(chuàng)建集群的時(shí)候了,所以需要?jiǎng)h除節(jié)點(diǎn)配置文件nodes.conf、還需
? ? ? ? ??要?jiǎng)h除數(shù)據(jù)存儲(chǔ)文件dump.rdb。
五、Cluster相關(guān)的命令,現(xiàn)在對(duì)所有的命令所以下說(shuō)明。
CLUSTER info:打印集群的信息。
CLUSTER nodes:列出集群當(dāng)前已知的所有節(jié)點(diǎn)(node)的相關(guān)信息。
CLUSTER meet <ip> <port>:將ip和port所指定的節(jié)點(diǎn)添加到集群當(dāng)中。
CLUSTER addslots <slot> [slot ...]:將一個(gè)或多個(gè)槽(slot)指派(assign)給當(dāng)前節(jié)點(diǎn)。
CLUSTER delslots <slot> [slot ...]:移除一個(gè)或多個(gè)槽對(duì)當(dāng)前節(jié)點(diǎn)的指派。
CLUSTER slots:列出槽位、節(jié)點(diǎn)信息。
CLUSTER slaves <node_id>:列出指定節(jié)點(diǎn)下面的從節(jié)點(diǎn)信息。
CLUSTER replicate <node_id>:將當(dāng)前節(jié)點(diǎn)設(shè)置為指定節(jié)點(diǎn)的從節(jié)點(diǎn)。
CLUSTER saveconfig:手動(dòng)執(zhí)行命令保存保存集群的配置文件,集群默認(rèn)在配置修改的時(shí)候會(huì)自動(dòng)保存配置文件。
CLUSTER keyslot <key>:列出key被放置在哪個(gè)槽上。
CLUSTER flushslots:移除指派給當(dāng)前節(jié)點(diǎn)的所有槽,讓當(dāng)前節(jié)點(diǎn)變成一個(gè)沒(méi)有指派任何槽的節(jié)點(diǎn)。
CLUSTER countkeysinslot <slot>:返回槽目前包含的鍵值對(duì)數(shù)量。
CLUSTER getkeysinslot <slot> <count>:返回count個(gè)槽中的鍵。
CLUSTER setslot <slot> node <node_id> 將槽指派給指定的節(jié)點(diǎn),如果槽已經(jīng)指派給另一個(gè)節(jié)點(diǎn),那么先讓另一個(gè)節(jié)點(diǎn)刪除該槽,然后再進(jìn)行指派。
CLUSTER setslot <slot> migrating <node_id> 將本節(jié)點(diǎn)的槽遷移到指定的節(jié)點(diǎn)中。
CLUSTER setslot <slot> importing <node_id> 從 node_id 指定的節(jié)點(diǎn)中導(dǎo)入槽 slot 到本節(jié)點(diǎn)。
CLUSTER setslot <slot> stable 取消對(duì)槽 slot 的導(dǎo)入(import)或者遷移(migrate)。
CLUSTER failover:手動(dòng)進(jìn)行故障轉(zhuǎn)移。
CLUSTER forget <node_id>:從集群中移除指定的節(jié)點(diǎn),這樣就無(wú)法完成握手,過(guò)期時(shí)為60s,60s后兩節(jié)點(diǎn)又會(huì)繼續(xù)完成握手。
CLUSTER reset [HARD|SOFT]:重置集群信息,soft是清空其他節(jié)點(diǎn)的信息,但不修改自己的id,hard還會(huì)修改自己的id,不傳該參數(shù)則使用soft方式。
CLUSTER count-failure-reports <node_id>:列出某個(gè)節(jié)點(diǎn)的故障報(bào)告的長(zhǎng)度。
CLUSTER SET-CONFIG-EPOCH:設(shè)置節(jié)點(diǎn)epoch,只有在節(jié)點(diǎn)加入集群前才能設(shè)置。
其他參考文章鏈接:
Redis-5.0.0集群配置
https://www.cnblogs.com/aquester/p/9891465.html
redis學(xué)習(xí)之集群報(bào)錯(cuò)Node is not empty
https://blog.csdn.net/wudalang_gd/article/details/52153571
redis初試Not all 16384 slots are covered by nodes
https://www.cnblogs.com/dupang/p/5631007.html
Redis Cluster部署、管理和測(cè)試
https://www.cnblogs.com/zhoujinyi/p/6477133.html
參考:https://blog.csdn.net/justry_deng/article/details/89205155
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)題目:Centos7上部署redis集群-創(chuàng)新互聯(lián)
鏈接分享:http://jinyejixie.com/article4/ghioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站設(shè)計(jì)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容