Docker是基于Go語言實現(xiàn)的云開源項目。Docker的主要目標是**“Build,Ship and Run Any App,Anywhere”**。也就是通過對應用組件的封裝、分發(fā)、部署、運行等生命周期的管理,使用戶的APP(可以是一個WEB應用或數(shù)據(jù)庫應用等等)及其運行環(huán)境能夠做到“一次鏡像,處處運行”。
成都創(chuàng)新互聯(lián)公司服務項目包括邛崍網(wǎng)站建設、邛崍網(wǎng)站制作、邛崍網(wǎng)頁制作以及邛崍網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,邛崍網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到邛崍省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!修改云服務器安全組開放對應端口(注意:包括總線端口,如16381)、關閉云服務器內(nèi)部防火墻并重啟Docker(systemctl stop firewalld)
新建6個 redis容器實例
docker run -d --name redis-node-1 --net host --privileged=true -v /mydata/redis/cluster/redis-node-1:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /mydata/redis/cluster/redis-node-2:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /mydata/redis/cluster/redis-node-3:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /mydata/redis/cluster/redis-node-4:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6391
docker run -d --name redis-node-5 --net host --privileged=true -v /mydata/redis/cluster/redis-node-5:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6392
docker run -d --name redis-node-6 --net host --privileged=true -v /mydata/redis/cluster/redis-node-6:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6393
進入 redis-6381 容器實例,并為6臺機器構(gòu)建集群關系
redis-cli --cluster create 114.132.162.129:6381 114.132.162.129:6382 114.132.162.129:6383 114.132.162.129:6391 114.132.162.129:6392 114.132.162.129:6393 --cluster-replicas 1
#--cluster-replicas 1 表示為每個master創(chuàng)建一個slave節(jié)點
進入 redis-6381 容器實例,查看集群信息
redis-cli -p port
cluster info
cluster nodes
讀寫數(shù)據(jù):非集群模式、集群模式
redis -p 6381 -c
查看集群信息
redis-cli --cluster check 114.132.162.129:6381
將 redis-6381 停了,容器實例 redis-6392 上位。
6381宕機了,6392上位成為了新的master。
還原集群初始狀態(tài)
過程中需要等待一會兒,docker集群重新響應。
查看集群信息
新建 redis-6384(主)、redis-6394(從) 兩個redis容器實例
docker run -d --name redis-node-7 --net host --privileged=true -v /mydata/redis/cluster/redis-node-7:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-8 --net host --privileged=true -v /mydata/redis/cluster/redis-node-8:/data redis:6.0.16 --cluster-enabled yes --appendonly yes --port 6394
進入容器實例 redis-6384 ,將 自己(空槽號) 作為master節(jié)點加入原集群。并檢查集群信息1
redis-cli --cluster add-node 114.132.162.129:6384 114.132.162.129:6381
#6384 就是將要作為master的新增節(jié)點, 6381 就是原來集群節(jié)點里面的領路人,相當于6384拜6381的碼頭從而找到組織加入集群
redis-cli --cluster check 114.132.162.129:6384
重新分配槽位
redis-cli --cluster reshard 114.132.162.129:6381
槽位怎么獲得?從其他3家各自勻出來一部分
檢查集群信息2
redis-cli --cluster check 114.132.162.129:6381
為什么6387是3個新的區(qū)間,以前的還是連續(xù)?
重新分配的成本太高,所以前3家各自勻出來一部分,從6381/6382/6383三個舊的主節(jié)點分別勻出1364個坑位給新主節(jié)點6387
為主節(jié)點 redis-6384 分配從節(jié)點 redis-6394
redis-cli --cluster add-node 114.132.162.129:6394 114.132.162.129:6384 --cluster-slave --cluster-master-id a84049bf1569e3021eb016626b5c7d8c168d1d39
#最后為新主節(jié)點id(redis-6384的id)
檢查集群信息3
redis-cli --cluster check 114.132.162.129:6384
目的:reids-6384 和 redis-6394 下線
從集群中將 redis-6394從節(jié)點 刪除(先刪除從節(jié)點)
redis-cli --cluster del-node 114.132.162.129:6394 2f153dac33d9b5a4add859ec44579b48d3fd05e7
將集群中 reids-6384 的槽位重新分配
redis-cli --cluster reshard 114.132.162.129:6381
檢查集群信息
redis-cli --cluster check 114.132.162.129:6384
刪除 redis-6384主節(jié)點
redis-cli --cluster del-node 114.132.162.129:6384 a84049bf1569e3021eb016626b5c7d8c168d1d39
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧