成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

手動(dòng)構(gòu)建redis集群

1、準(zhǔn)備節(jié)點(diǎn)

-- 主節(jié)點(diǎn) ---
redis-7000.conf
redis-7100.conf
redis-7200.conf

-- 從節(jié)點(diǎn) ---
redis-7001.conf
redis-7101.conf
redis-7201.conf

Redis集群一般有多個(gè)節(jié)點(diǎn)組成,節(jié)點(diǎn)數(shù)量至少為6個(gè)才能保證組成完整的高可用集群;

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),廣告投放平臺(tái),成都做網(wǎng)站選創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。

2、修改配置

$ vim redis-7000.conf
daemonize yes   ## 開啟守護(hù)進(jìn)程 
port 7000   # 節(jié)點(diǎn)端口
logfile "/soft/redis/cluster/7000/redis.log"    # 指定日志輸入位置
cluster-enabled yes     # 開啟集群模式
cluster-node-timeout 15000  # 節(jié)點(diǎn)超時(shí)時(shí)間,單位毫秒
cluster-config-file "nodes-7000.conf"   # 集群內(nèi)部配置文件【第一次啟動(dòng)時(shí)如果沒(méi)有該文件,則會(huì)自動(dòng)創(chuàng)建】

其他節(jié)點(diǎn)配置和單機(jī)模式一致即可,配置文件命名規(guī)則:redis-{prot}.conf,準(zhǔn)備好后啟動(dòng)所有節(jié)點(diǎn);

-- 主節(jié)點(diǎn) ---
redis-server /soft/redis/cluster/redis-7000.conf &
redis-server /soft/redis/cluster/redis-7100.conf &
redis-server /soft/redis/cluster/redis-7200.conf &
-- 從節(jié)點(diǎn) ---
redis-server /soft/redis/cluster/redis-7001.conf &
redis-server /soft/redis/cluster/redis-7101.conf &
redis-server /soft/redis/cluster/redis-7201.conf &

檢查當(dāng)前節(jié)點(diǎn)日志是否正確,內(nèi)容如下:

$ cat /cluster/redis-7000.log
77893:M 16 Apr 00:38:38.924 * Increased maximum number of open files to 10032 (it was originally set to 1024).
77893:M 16 Apr 00:38:38.925 * No cluster configuration found, I'm 0c0bea9746cfe04dfcbb6ec1db35be5756dd7924'
...                                  
77893:M 16 Apr 00:38:38.935 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
77893:M 16 Apr 00:38:38.935 # Server started, Redis version 3.2.0
...
77893:M 16 Apr 00:38:38.935 * The server is now ready to accept connections on port 7000

節(jié)點(diǎn)首次啟動(dòng)后生成集群配置文件,內(nèi)容為:

-- 通過(guò)查看日志方式 --
$ cat nodes-7000.conf 
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 :0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0

文件內(nèi)存記錄了集群初始狀態(tài),這里最重要的是節(jié)點(diǎn)ID【這是一個(gè)40位16進(jìn)制字符串

該節(jié)點(diǎn)ID只創(chuàng)建一次【不同于運(yùn)行ID】,節(jié)點(diǎn)重啟時(shí)會(huì)加載該配置文件進(jìn)行重用;

-- 通過(guò)命令交互形式回顯 --
[root@test cluster]# redis-cli -p 7000
127.0.0.1:7000> cluster nodes
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 :7000 myself,master - 0 0 0 connected

3、節(jié)點(diǎn)握手

節(jié)點(diǎn)握手是指一批運(yùn)行在集群模式下的節(jié)點(diǎn)通過(guò)Gossip協(xié)議彼此通信,以達(dá)到感知對(duì)方的過(guò)程; 節(jié)點(diǎn)握手是建立集群通信的第一步,由客戶端發(fā)起命令:cluster meet {IP} {port}

步驟如下:

     1.  節(jié)點(diǎn)7000 發(fā)送meet消息給 節(jié)點(diǎn)7001
     2.  節(jié)點(diǎn)7001 接受到meet消息后,保存節(jié)點(diǎn)7000的信息并回復(fù)pong消息
     3.  之后,節(jié)點(diǎn)7000 和 7001 彼此定期通過(guò)ping/pong消息進(jìn)行正常的節(jié)點(diǎn)通信;

-- 發(fā)送節(jié)點(diǎn)握手指令 --
127.0.0.1:7000> cluster meet 127.0.0.1 7001
127.0.0.1:7000> cluster meet 127.0.0.1 7101
127.0.0.1:7000> CLUSTER MEET 127.0.0.1 7100
127.0.0.1:7000> CLUSTER MEET 127.0.0.1 7200
127.0.0.1:7000> CLUSTER MEET 127.0.0.1 7300

-- 查看握手是否正常 --
127.0.0.1:7000> cluster nodes
c0ffcbe12a16d2457786b542707dca0529bb1610 127.0.0.1:7300 master - 0 1492278433843 0 connected
b40c70eb1c32b4af2450e94deed01dec14ca26a0 127.0.0.1:7200 master - 0 1492278432333 0 connected
34d2f50d036d7b95e5f3ae43571404c735b2e3ee 127.0.0.1:7100 master - 0 1492278430825 3 connected
367ec3a52e8faedc37f3d919865016f50f689893 127.0.0.1:7001 master - 0 1492278432835 2 connected
8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0 127.0.0.1:7101 master - 0 1492278429818 4 connected
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 127.0.0.1:7000 myself,master - 0 0 1 connected

此時(shí),節(jié)點(diǎn)握手建立完成;但還不能正常工作:

127.0.0.1:7000> CLUSTER info
cluster_state:fail
cluster_slots_assigned:0        ## slots【槽的意思】,此時(shí)為0 表示目前所有槽沒(méi)有被分配到節(jié)點(diǎn)上
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:0
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_sent:8725
cluster_stats_messages_received:8725

4.分配槽

Redis集群把所有的數(shù)據(jù)映射到16384個(gè)槽中,每個(gè)key會(huì)映射為一個(gè)固定的槽,只有當(dāng)節(jié)點(diǎn)分配了槽時(shí),才能響應(yīng)和這些槽關(guān)聯(lián)的鍵命令;

這里通過(guò) cluster addslots 命令為節(jié)點(diǎn)分配槽:

--- 通過(guò) bash 特性批量設(shè)置槽(lots) ---
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {0..5461} 
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {5462..10922} 
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {10923..16383}

--- 通過(guò)交互命令分配槽(lots) ---
127.0.0.1:7000> cluster addslots {0..5461} 
127.0.0.1:7000> cluster addslots {5462..10922} 
127.0.0.1:7000> cluster addslots {10923..16383}

--- 查看集群狀態(tài) ---
127.0.0.1:7000> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:1
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_sent:8725
cluster_stats_messages_received:8725

127.0.0.1:7000> CLUSTER NODES
c0ffcbe12a16d2457786b542707dca0529bb1610 127.0.0.1:7201 master - 0 1492280674461 0 connected
b40c70eb1c32b4af2450e94deed01dec14ca26a0 127.0.0.1:7201 master - 0 1492280674965 5 connected
34d2f50d036d7b95e5f3ae43571404c735b2e3ee 127.0.0.1:7100 master - 0 1492280673454 3 connected
367ec3a52e8faedc37f3d919865016f50f689893 127.0.0.1:7001 master - 0 1492280675467 2 connected
8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0 127.0.0.1:7101 master - 0 1492280672448 4 connected
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 127.0.0.1:7000 myself,master - 0 0 1 connected 0-16383

目前還有3個(gè)節(jié)點(diǎn)沒(méi)有使用,作為一個(gè)完整的集群;

每個(gè)負(fù)責(zé)處理槽的節(jié)點(diǎn)都應(yīng)該具有從節(jié)點(diǎn),保證當(dāng)它出現(xiàn)故障時(shí)可自動(dòng)進(jìn)行故障轉(zhuǎn)移;

集群模式下,redis節(jié)點(diǎn)角色分配為主節(jié)點(diǎn)和從節(jié)點(diǎn);

首次啟動(dòng)的節(jié)點(diǎn)和被分配槽的節(jié)點(diǎn)都是主節(jié)點(diǎn),從節(jié)點(diǎn)負(fù)責(zé)負(fù)責(zé)主節(jié)點(diǎn)槽信息和相關(guān)數(shù)據(jù);

--- 使用命令方式 ---
$ redis-cli -h 127.0.0.1 -p 7000 cluster nodes
c0ffcbe12a16d2457786b542707dca0529bb1610 127.0.0.1:7201 master - 0 1492288202486 0 connected
b40c70eb1c32b4af2450e94deed01dec14ca26a0 127.0.0.1:7200 master - 0 1492288205502 5 connected
34d2f50d036d7b95e5f3ae43571404c735b2e3ee 127.0.0.1:7100 master - 0 1492288204498 3 connected
367ec3a52e8faedc37f3d919865016f50f689893 127.0.0.1:7001 master - 0 1492288201480 2 connected
8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0 127.0.0.1:7101 master - 0 1492288203490 4 connected
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 127.0.0.1:7000 myself,master - 0 0 1 connected 0-16383

--- 建立主從節(jié)點(diǎn) ---
127.0.0.1:7001> CLUSTER REPLICATE 0c0bea9746cfe04dfcbb6ec1db35be5756dd7924
127.0.0.1:7101> CLUSTER REPLICATE 367ec3a52e8faedc37f3d919865016f50f689893
127.0.0.1:7201> CLUSTER REPLICATE 8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0

--- 查看復(fù)制狀態(tài)信息 ---
127.0.0.1:7101> CLUSTER NODES
c0ffcbe12a16d2457786b542707dca0529bb1610 127.0.0.1:7101 myself,slave 8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0 0 0 0 connected
34d2f50d036d7b95e5f3ae43571404c735b2e3ee 127.0.0.1:7001 slave 0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 0 1492288883018 3 connected
b40c70eb1c32b4af2450e94deed01dec14ca26a0 127.0.0.1:7201 slave 367ec3a52e8faedc37f3d919865016f50f689893 0 1492288884023 5 connected
8c8b9679cd7c52d28fc58aa86d6b0e78efa249c0 127.0.0.1:7100 master - 0 1492288885033 4 connected
367ec3a52e8faedc37f3d919865016f50f689893 127.0.0.1:7200 master - 0 1492288881005 2 connected
0c0bea9746cfe04dfcbb6ec1db35be5756dd7924 127.0.0.1:7000 master - 0 1492288882012 1 connected 0-16383
查看當(dāng)前節(jié)點(diǎn)關(guān)系
127.0.0.1:7000> CLUSTER SLOTS
1) 1) (integer) 0
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 7000 # 主節(jié)點(diǎn)
      3) "0c0bea9746cfe04dfcbb6ec1db35be5756dd7924"
   4) 1) "127.0.0.1"
      2) (integer) 7001 # 從節(jié)點(diǎn)
      3) "34d2f50d036d7b95e5f3ae43571404c735b2e3ee"
刪除分配槽
127.0.0.1:7000> CLUSTER DELSLOTS 1 2 3
或者:
redis-cli -h 127.0.0.1 -p 7000 cluster delslots {10923..16383}
總結(jié):
1、手動(dòng)創(chuàng)建集群,重啟redis服務(wù)后;集群斷開,節(jié)點(diǎn)握手也斷開
2、創(chuàng)建集群分為3步驟:  
        1、節(jié)點(diǎn)握手 
        2、分配槽   
        3、主從節(jié)點(diǎn)建立復(fù)制關(guān)系

相關(guān)鏈接:

用redis-trib.rb搭建redis集群

redis集群【報(bào)錯(cuò)總結(jié)】

本文名稱:手動(dòng)構(gòu)建redis集群
URL標(biāo)題:http://jinyejixie.com/article10/ppecdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App開發(fā)、軟件開發(fā)、企業(yè)網(wǎng)站制作、建站公司網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
岢岚县| 北辰区| 石嘴山市| 大荔县| 肥城市| 沙河市| 高唐县| 梅州市| 宜章县| 马尔康县| 泽州县| 姜堰市| 拜泉县| 新巴尔虎左旗| 沐川县| 宁海县| 通化县| 申扎县| 黔江区| 石屏县| 天长市| 朝阳县| 始兴县| 勃利县| 巴东县| 大化| 蒙阴县| 六枝特区| 五大连池市| 台北县| 山西省| 哈尔滨市| 施甸县| 定西市| 杭锦旗| 徐汇区| 扬中市| 农安县| 开鲁县| 张北县| 华阴市|