1. 程式人生 > >redis-cluster 配置

redis-cluster 配置

最近在複習redis的叢集配置, 因為之前用的都是redis主從複製然後加3 個sentinel節點,沒用過redis-cluster, 今天心血來潮 搞一下。

話不多說開始

1、 當然是安裝redis,這個網上教程一堆,請自行查閱

2、最重要的配置檔案 redis.conf。

預設redis-cluster至少3個節點(加上主從,總共6個節點),所以直接複製3 份 重新命名,7000.conf, 7001.conf,  7002.conf

因置的是叢集,所以修改下里面的引數

2.1、修改conf檔案中埠為7000,7001,7002

2.2、

修改redis.conf檔案的cluster-config-file引數為

nodes-7000.conf

nodes-7001.conf

nodes-7002.conf

開啟叢集相關引數

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

3、分別 啟動3個例項, redis-server 7000.conf , redis-server 7001.conf ,  redis-server 7002.conf

4、 通過客戶端登入檢視啟動情況

   redis-cli -p 7000(本機可以這樣操作) , 如果是不同機器,redis-cli -h ip -p 7000

  到目前3各服務端已經啟動成功,但並沒有自動構建叢集,因為三者還處於“我不認識你,你不屬於我”的狀態,它們每個都是孤零零的Redis節點,或者是隻包含了一個節點的叢集  ,通過cluster meet 命令來完成叢集的構建

5、

127.0.0.1:7000> cluster meet 127.0.0.1 7001

OK

127.0.0.1:7000> cluster meet 127.0.0.1 7002

OK

這一步的 意思是讓7000這個埠去相遇其他節點,這樣就構成了一個叢集

6、輸入命令cluster nodes

結果如下:

XXXXXXXXXXXXXXXXXXXXXXXXX(節點的名字) 127.0.0.1:7000 myself,master - 0 0 0 connected 

YYYYYYYYYYYYYYYYYYYYYYYYY 127.0.0.1:7001 master - 0 1469926275334 1 connected 

ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 127.0.0.1:7002 master - 0 1469926276376 2 connected

通過cluster nodes 檢視叢集構建成功,是否叢集搭建工作就完成了呢?非也,我們通過cluster info命令來檢視叢集的狀態

7、輸入cluster nodes

主要看這個引數 cluster_state:fail

為啥是個fail? 因為還沒有分配槽

8、槽的分配

8.1、命令 cluster addslots,這個命令比較操蛋,我網上搜了一大圈,好像只有一個個節點新增,或者1 2 3 這樣寫明的批量新增

8.2、另外一種方法 就是修改配置 檔案。我們之前在配置 檔案中 指定了nodes-7000.conf這個檔案, 回到redis目錄下,會發現 這個檔案自動 生成了, 然後手動去修改 裡面帶有myself的那行,表示自己,然後最後加上分配的槽

XXXXXXXXXXXXXXXXXXXXXX 127.0.0.1:7000 myself,master - 0 0 0 connected 0-5000

YYYYYYYYYYYYYYYYYYYYYY 127.0.0.1:7001 master - 0 1469925269256 1 connected 5001-10000

ZZZZZZZZZZZZZZZZZZZZZZZZ 127.0.0.1:7002 master - 0 1469925270085 2 connected 10001-16383

之後重啟 一下就OK了