站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Redis集群操作實(shí)例詳解

        本篇文章給大家?guī)砹岁P(guān)于Redis的相關(guān)知識(shí),其中主要整理了集群操作的相關(guān)問題,包括了增加redis實(shí)例、配置8007為主節(jié)點(diǎn)、配置8008為8007的從節(jié)點(diǎn)等等內(nèi)容,下面一起來看一下,希望對(duì)大家有幫助。

        Redis集群操作實(shí)例詳解

        推薦學(xué)習(xí):Redis視頻教程

        基于已有一定基礎(chǔ),這里搭建一個(gè)基礎(chǔ)版本三主三從,架構(gòu)如下

        Redis集群操作實(shí)例詳解

        1、啟動(dòng)集群

        /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8001/redis.conf  /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8002/redis.conf  /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8003/redis.conf  /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8004/redis.conf  /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8005/redis.conf  /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8006/redis.conf

        查看集群狀態(tài):cluster nodes

        Redis集群操作實(shí)例詳解從上圖可以看出,整個(gè)集群運(yùn)行正常,三個(gè)master節(jié)點(diǎn)和三個(gè)slave節(jié)點(diǎn),

        • 8001端口的實(shí)例節(jié)點(diǎn)存儲(chǔ)0-5460這些hash槽,
        • 8002端口的實(shí)例節(jié)點(diǎn)存儲(chǔ)5461-10922這些hash槽,
        • 8003端口的實(shí)例節(jié)點(diǎn)存儲(chǔ)10923-16383這些hash槽,

        這三個(gè)master節(jié)點(diǎn)存儲(chǔ)的所有hash槽組成 redis集群的存儲(chǔ)槽位,slave點(diǎn)是每個(gè)主節(jié)點(diǎn)的備份從節(jié)點(diǎn),不顯示存儲(chǔ)槽位。

        2、集群操作

        我們?cè)谠技夯A(chǔ)上再增加一主(8007)一從(8008),增加節(jié)點(diǎn)后的集群參見下圖,新增節(jié)點(diǎn)用虛線框表示

        Redis集群操作實(shí)例詳解

        2.1、增加redis實(shí)例

        在/usr/local/redis-cluster下創(chuàng)建8007和8008文件夾,并拷貝8001文件夾下的redis.conf文件到8007和8008這兩個(gè)文件夾下

        mkdir 8007 8008  cd 8001 cp redis.conf /usr/local/redis‐cluster/8007/  cp redis.conf /usr/local/redis‐cluster/8008/   # 修改8007文件夾下的redis.conf配置文件 vim /usr/local/redis‐cluster/8007/redis.conf  # 修改如下內(nèi)容: port:8007  dir /usr/local/redis‐cluster/8007/ cluster‐config‐file nodes‐8007.conf   # 修改8008文件夾下的redis.conf配置文件 vim /usr/local/redis‐cluster/8008/redis.conf # 修改內(nèi)容如下: port:8008 dir /usr/local/redis‐cluster/8008/ cluster‐config‐file nodes‐8008.conf  # 啟動(dòng)8007和8008倆個(gè)服務(wù)并查看服務(wù)狀態(tài) /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8007/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8008/redis.conf  ps ‐el | grep redis

        2.2、配置8007為主節(jié)點(diǎn)

        用add-node命令新增一個(gè)主節(jié)點(diǎn)8007(master),前面的ip:port為新增節(jié)點(diǎn),后面的ip:port為已知存在節(jié)點(diǎn),看到日志最后有"[OK] New node added correctly"提示代表新節(jié)點(diǎn)加入成功

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster add‐node 192.168.0.61:8007 192.168.0.61:8001

        查看集群狀態(tài)

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐c ‐h 192.168.0.61 ‐p 8001  192.168.0.61:8001> cluster nodes

        如下所示:

        Redis集群操作實(shí)例詳解

        注意:當(dāng)添加節(jié)點(diǎn)成功以后,新增的節(jié)點(diǎn)不會(huì)有任何數(shù)據(jù),因?yàn)樗€沒有分配任何的slot(hash槽),我們需要為新節(jié)點(diǎn)手工分配hash槽

        使用redis-cli命令為8007分配hash槽,找到集群中的任意一個(gè)主節(jié)點(diǎn),對(duì)其進(jìn)行重新分片工作

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster reshard 192.168.0.61:8001

        2.3、配置8008為8007的從節(jié)點(diǎn)

        添加從節(jié)點(diǎn)8008到集群中去并查看集群狀態(tài)

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster add‐node 192.168.0.61:8008 192.168.0.61:8001

        如下:

        Redis集群操作實(shí)例詳解

        如圖所示,還是一個(gè)master節(jié)點(diǎn),沒有被分配任何的hash槽。

        原因:我們需要執(zhí)行replicate命令來指定當(dāng)前節(jié)點(diǎn)(從節(jié)點(diǎn))的主節(jié)點(diǎn)id為哪個(gè),首先需要連接新加的8008節(jié)點(diǎn)的客戶端,然后使用集群命令進(jìn)行操作,把當(dāng)前的8008(slave)節(jié)點(diǎn)指定到一個(gè)主節(jié)點(diǎn)下(這里使用之前創(chuàng)建的8007主節(jié)點(diǎn))

        執(zhí)行指令

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐c ‐h 192.168.0.61 ‐p 8008   192.168.0.61:8008> cluster replicate 2728a594a0498e98e4b83a537e19f9a0a3790f38 #后面這串id為8007的節(jié)點(diǎn)id

        查看集群狀態(tài),8008節(jié)點(diǎn)已成功添加為8007節(jié)點(diǎn)的從節(jié)點(diǎn)

        Redis集群操作實(shí)例詳解

        2.4、刪除8080從節(jié)點(diǎn)[不刪除四主四從]

        用del-node刪除從節(jié)點(diǎn)8008,指定刪除節(jié)點(diǎn)ip和端口,以及節(jié)點(diǎn)id(紅色為8008節(jié)點(diǎn)id)

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster del‐node 192.168.0.61:8008 a1cfe35722d151cf70585cee212755653 93c0956

        再次查看集群狀態(tài),如下圖所示,8008這個(gè)slave節(jié)點(diǎn)已經(jīng)移除,并且該節(jié)點(diǎn)的redis服務(wù)也已被停止

        Redis集群操作實(shí)例詳解

        2.5、刪除8007主節(jié)點(diǎn)[不刪除四主四從]

        因?yàn)橹鞴?jié)點(diǎn)的里面是有分配了hash槽的,所以我們這里必須先把8007里的hash槽放入到其他的可用主節(jié)點(diǎn)中去,然后再進(jìn)行移除節(jié)點(diǎn)操作,不然會(huì)出現(xiàn)數(shù)據(jù)丟失問題(目前只能把master的數(shù)據(jù)遷移到一個(gè)節(jié)點(diǎn)上,暫時(shí)做不了平均分配功能),執(zhí)行命令如下:

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster reshard 192.168.0.61:8007

        遷移驗(yàn)證:會(huì)發(fā)現(xiàn)8007下面已經(jīng)沒有任何hash槽了,證明遷移成功!

        Redis集群操作實(shí)例詳解

        用del-node命令刪除8007主節(jié)點(diǎn)即可

        /usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster del‐node 192.168.0.61:8007 2728a594a0498e98e4b83a537e19f9a0a 3790f38

        查看最終集群狀態(tài),發(fā)現(xiàn)一切恢復(fù)如初,至此水平擴(kuò)展結(jié)束

        Redis集群操作實(shí)例詳解

        推薦學(xué)習(xí):Redis視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久er国产精品免费观看2| 99久久国产综合精品网成人影院| 国产精品污WWW在线观看| 国产精品美女久久久免费| 国产精品无码无卡在线播放| 日韩精品电影一区亚洲| 97久人人做人人妻人人玩精品| 国产精品亚洲片在线| 日韩精品一区二区三区视频| 99久久精品免费| 精品午夜久久福利大片| 久久精品国产99久久无毒不卡 | 97视频在线精品国自产拍| 国产久热精品无码激情| 亚洲av永久无码精品表情包| 久久久久这里只有精品 | 国产精品免费观看视频| 久久99国产精品久久99果冻传媒 | 日韩一级精品视频在线观看| 好吊妞视频精品| 国产福利91精品一区二区三区| 精品人妻中文字幕有码在线| 无码人妻精品一区二区三18禁| 伊人精品久久久久7777| 无夜精品久久久久久| 蜜臀精品国产高清在线观看| 久久国产香蕉一区精品| 精品无码人妻久久久久久| 国产网红主播无码精品| 国产午夜精品理论片久久| 国产欧美日韩综合精品一区二区三区| 9久热这里只有精品| 99精品国产福利在线观看| 国产精品毛片一区二区| 国产精品五月天强力打造| 精品91自产拍在线观看| 精品视频一区二区三区| 久热精品人妻视频| 亚洲精品国产V片在线观看| 真实国产乱子伦精品视频| 亚洲AV永久无码精品成人|