日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis集群的基本配置

發布時間:2025/3/21 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis集群的基本配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一.Redis集群集群概述

二.部署Redis集群

1.基本原理

2.配置管理主機

3.創建集群

4.訪問集群

5.添加服務器

6.移除服務器


一.Redis集群集群概述

  • 所謂集群,就是通過添加服務器的數量,提供相同的服務,從而讓服務器達到一個穩定、高效的狀態

  • 單個redis存在不穩定性。當redis服務宕機了,就沒有可用的服務了

  • 單個redis的讀寫能力是有限的

  • Redis集群是為了強化redis的讀寫能力

  • redis集群中,每一個redis稱之為一個節點

  • 所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬

  • 節點的fail是通過集群中超過半數的節點檢測失效時才生效

  • 客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集群所有節點,連接集群中任何一個可用節點即可

  • redis集群中,有兩種類型的節點:主節點(master)、從節點(slave)

  • redis集群,是基于redis主從復制實現

    • 主從復制模型中,有多個redis節點

    • 其中,有且僅有一個為主節點Master。從節點Slave可以有多個

    • 只要網絡連接正常,Master會一直將自己的數據更新同步給Slaves,保持主從同步

    • 主節點Master可讀、可寫

    • 從節點Slave只讀

二.部署Redis集群

1.基本原理

  • 集群中至少應該有奇數個節點,所以至少有三個節點,每個節點至少有一個備份節點

  • 架構圖

  • 存儲結構

  • redis-cluster把所有的物理節點映射到[0-16383]slot上(不一定是平均分配),cluster 負責維護node<->slot<->value

  • Redis集群預分好16384個桶,當需要在 Redis 集群中放置一個 key-value 時,根據 CRC16(key) mod 16384的值,決定將一個key放到哪個桶中。

2.配置管理主機

  • 在管理主機manager1(192.168.1.20)上配置腳本運行環境

  • 下載地址https://rubygems.org/gems/redis/versions/

[root@manager1 ~]# yum install -y rubygems [root@manager1 ~]# gem install redis-3.2.1.gem
  • 部署集群管理腳本

[root@manager1 ~]# tar xf redis-4.0.8.tar.gz [root@manager1 ~]# cp redis-4.0.8/src/redis-trib.rb /usr/local/bin/ [root@manager1 ~]# chmod +x /usr/local/bin/redis-trib.rb # 查看幫助 [root@manager1 ~]# redis-trib.rb help

3.創建集群

1)啟動redis1的集群功能

# 停止服務 [root@redis1 ~]# service redis_6379 stop Stopping ... Redis stopped ? # 修改配置文件 [root@redis1 ~]# vim /etc/redis/6379.conf protected-mode no # 關閉保護模式,以允許不使用密碼、不指定綁定地址提供服務 # bind 127.0.0.1 # 注釋掉,以監聽在全部地址 # requirepass tedu.cn # 不使用密碼 cluster-enabled yes # 啟用集群功能 cluster-config-file nodes-6379.conf # 集群配置文件位置 cluster-node-timeout 5000 # 心跳時間 ? # 清空原有數據 [root@redis1 ~]# rm -rf /var/lib/redis/6379/* ? # 修改服務啟動文件 [root@redis1 ~]# vim +43 /etc/init.d/redis_6379 ... ...$CLIEXEC -p $REDISPORT shutdown ... ... ? # 啟動服務 [root@redis1 ~]# service redis_6379 start Starting Redis server... ? # 查看端口,集群服務運行在16379端口上 [root@redis1 ~]# ss -tlnp | grep redis LISTEN 0 128 *:16379 *:* users:(("redis-server",pid=18952,fd=10)) LISTEN 0 128 *:6379 *:* users:(("redis-server",pid=18952,fd=7)) LISTEN 0 128 [::]:16379 [::]:* users:(("redis-server",pid=18952,fd=9)) LISTEN 0 128 [::]:6379 [::]:* users:(("redis-server",pid=18952,fd=6))

2)配置redis2、redis3、redis4、redis5、redis6的集群功能

# 為了操作方便,可以配置redis1到其他節點的免密登陸 [root@redis1 ~]# ssh-keygen [root@redis1 ~]# for i in {12..16} > do > ssh-copy-id 192.168.1.$i > done ? # 將redis1上編譯好的redis拷貝到其他主機 [root@redis1 ~]# for i in 1{2..6} > do > scp -r /usr/local/redis 192.168.1.$i:/usr/local/ > done ? # 在redis2、redis3、redis4、redis5、redis6上,將redis命令目錄添加至PATH環境變量 [root@redis1 ~]# for i in 1{2..6}; do ssh 192.168.1.$i "echo 'export PATH=$PATH:/usr/local/redis/bin' >> /etc/bashrc"; done ? # 將redis1上源碼目錄拷貝到其他主機 [root@redis1 ~]# for i in 1{2..6}; do scp -r redis-4.0.8/ 192.168.1.$i:/root/; done ? # 分別在redis2、redis3、redis4、redis5、redis6上執行初始化服務器腳本 [root@nodeX ~]# cd redis-4.0.8/ [root@nodeX redis-4.0.8]# utils/install_server.sh ? # 停止redis2、redis3、redis4、redis5、redis6上的redis服務 [root@redis1 ~]# for i in 1{2..6}; do ssh 192.168.1.$i service redis_6379 stop; done ? # 拷貝redis1的配置文件到redis2、redis3、redis4、redis5、redis6 [root@redis1 ~]# for i in 1{2..6}; do scp /etc/redis/6379.conf 192.168.1.$i:/etc/redis/; done ? # 清除各主機上的數據 [root@redis1 ~]# for i in 1{2..6}; do ssh 192.168.1.$i rm -rf /var/lib/redis/6379/*; done ? # 啟動redis2、redis3、redis4、redis5、redis6上的redis服務 [root@redis1 ~]# for i in 1{2..6}; do ssh 192.168.1.$i service redis_6379 start; done

3)在管理主機manager1上創建集群

[root@manager1 ~]# redis-trib.rb create --replicas 1 \ > 192.168.1.11:6379 192.168.1.12:6379 192.168.1.13:6379 \ > 192.168.1.14:6379 192.168.1.15:6379 192.168.1.16:6379 ? >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.1.11:6379 192.168.1.12:6379 192.168.1.13:6379 Adding replica 192.168.1.15:6379 to 192.168.1.11:6379 Adding replica 192.168.1.16:6379 to 192.168.1.12:6379 Adding replica 192.168.1.14:6379 to 192.168.1.13:6379 M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:0-5460 (5461 slots) master M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:5461-10922 (5462 slots) master M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:10923-16383 (5461 slots) master S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379replicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379replicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379replicates 7cd1b4dc246c4c11780be1186f118ce79794d182 Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join... >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:0-5460 (5461 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:10923-16383 (5461 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:5461-10922 (5462 slots) master1 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.

4)在管理主機上查看集群信息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 0 keys | 5461 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 0 keys | 5461 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 0 keys | 5462 slots | 1 slaves. [OK] 0 keys in 3 masters. 0.00 keys per slot on average. ? [root@manager1 ~]# redis-trib.rb check 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:0-5460 (5461 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:10923-16383 (5461 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:5461-10922 (5462 slots) master1 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.

5)在集群節點上查看集群信息

# 直接將服務器上的redis-cli拷貝到客戶端即可 [root@redis1 ~]# scp /usr/local/redis/bin/redis-cli 192.168.1.10:/usr/local/bin ? # 在客戶端上登陸服務器,并查看集群狀態 [root@node10 ~]# redis-cli -h 192.168.1.11 192.168.1.11:6379> PING PONG ? 192.168.1.11:6379> 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:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:954 cluster_stats_messages_pong_sent:895 cluster_stats_messages_sent:1849 cluster_stats_messages_ping_received:890 cluster_stats_messages_pong_received:954 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:1849

4.訪問集群

  • 客戶端可以連接任何一臺集群服務器

  • 存儲數據時,根據算法,客戶端自動重定向到指定服務器存儲

[root@node10 ~]# redis-cli -c -h 192.168.1.11 192.168.1.11:6379> SET name tom -> Redirected to slot [5798] located at 192.168.1.12:6379 OK192.168.1.12:6379> SET gender male -> Redirected to slot [15355] located at 192.168.1.13:6379 OK192.168.1.13:6379> SET email tom@tedu.cn -> Redirected to slot [10780] located at 192.168.1.12:6379 OK192.168.1.12:6379> SET phone 15011223344 OK192.168.1.12:6379> SET address beijing -> Redirected to slot [3680] located at 192.168.1.11:6379 OK

5.添加服務器

1)添加主服務器redis7(192.168.1.17)

  • 準備一臺初始化完成的redis服務器

  • 在管理主機manager1(192.168.1.20)上,添加master角色主機到集群

[root@manager1 ~]# redis-trib.rb add-node 192.168.1.17:6379 192.168.1.11:6379 >>> Adding node 192.168.1.17:6379 to cluster 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:0-5460 (5461 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:10923-16383 (5461 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:5461-10922 (5462 slots) master1 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 192.168.1.17:6379 to make it join the cluster. [OK] New node added correctly.
  • 在管理主機上查看集群消息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 5461 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 5461 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 3 keys | 5462 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 0 keys | 0 slots | 0 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average.
  • 在管理主機上檢測集群

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 5461 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 5461 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 3 keys | 5462 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 0 keys | 0 slots | 0 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average. [root@manager1 ~]# redis-trib.rb check 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:0-5460 (5461 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:10923-16383 (5461 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:5461-10922 (5462 slots) master1 additional replica(s) M: e4138e59c01d0ed762162f7dddb61d7cdff1b85d 192.168.1.17:6379slots: (0 slots) master0 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
  • 在管理主機上,為新的master主機分配哈希槽

[root@manager1 ~]# redis-trib.rb reshard 192.168.1.11:6379 How many slots do you want to move (from 1 to 16384)?4096 What is the receiving node ID?e4138e59c01d0ed762162f7dddb61d7cdff1b85d Source node #1:all Do you want to proceed with the proposed reshard plan (yes/no)?yes
  • 在管理主機上,查看集群信息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 1 keys | 4096 slots | 0 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average.

2)添加從服務器redis8(192.168.1.18)

  • 準備一臺初始化完成的redis服務器

  • 在管理主機manager1(192.168.1.20)上,添加slave角色主機到集群。不指定主節點的 id ,新節點成為從節點最少的主節點的從節點。

[root@manager1 ~]# redis-trib.rb add-node --slave 192.168.1.18:6379 192.168.1.11:6379 >>> Adding node 192.168.1.18:6379 to cluster 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:1365-5460 (4096 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:12288-16383 (4096 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:6827-10922 (4096 slots) master1 additional replica(s) M: e4138e59c01d0ed762162f7dddb61d7cdff1b85d 192.168.1.17:6379slots:0-1364,5461-6826,10923-12287 (4096 slots) master0 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. Automatically selected master 192.168.1.17:6379 >>> Send CLUSTER MEET to node 192.168.1.18:6379 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 192.168.1.17:6379. [OK] New node added correctly.
  • 在管理主機上,查看集群新消息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 1 keys | 4096 slots | 1 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average.
  • 在管理主機上,檢測集群

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 1 keys | 4096 slots | 1 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average. [root@manager1 ~]# redis-trib.rb check 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:1365-5460 (4096 slots) master1 additional replica(s) S: 6c2079f43fd3e85c535dea1f275940740ab93765 192.168.1.18:6379slots: (0 slots) slavereplicates e4138e59c01d0ed762162f7dddb61d7cdff1b85d M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:12288-16383 (4096 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:6827-10922 (4096 slots) master1 additional replica(s) M: e4138e59c01d0ed762162f7dddb61d7cdff1b85d 192.168.1.17:6379slots:0-1364,5461-6826,10923-12287 (4096 slots) master1 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.

6.移除服務器

1)移除從服務器

  • 在管理主機上,直接移除從服務器redis8(192.168.1.18)

[root@manager1 ~]# redis-trib.rb del-node 192.168.1.18:6379 6c2079f43fd3e85c535dea1f275940740ab93765 >>> Removing node 6c2079f43fd3e85c535dea1f275940740ab93765 from cluster 192.168.1.18:6379 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node.
  • ?查看集群
[root@manager1 ~]# redis-trib.rb check 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:1365-5460 (4096 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:12288-16383 (4096 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:6827-10922 (4096 slots) master1 additional replica(s) M: e4138e59c01d0ed762162f7dddb61d7cdff1b85d 192.168.1.17:6379slots:0-1364,5461-6826,10923-12287 (4096 slots) master0 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 1 keys | 4096 slots | 0 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average.

?2)移除主服務器

  • 在管理節點上,刪除master服務器占用的哈希槽

[root@manager1 ~]# redis-trib.rb reshard 192.168.1.11:6379 >>> Performing Cluster Check (using node 192.168.1.11:6379) M: b1b8e906ea2c7b71e567485f02d0007ad902a5c5 192.168.1.11:6379slots:1365-5460 (4096 slots) master1 additional replica(s) M: 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc 192.168.1.13:6379slots:12288-16383 (4096 slots) master1 additional replica(s) M: 7cd1b4dc246c4c11780be1186f118ce79794d182 192.168.1.12:6379slots:6827-10922 (4096 slots) master1 additional replica(s) M: e4138e59c01d0ed762162f7dddb61d7cdff1b85d 192.168.1.17:6379slots:0-1364,5461-6826,10923-12287 (4096 slots) master0 additional replica(s) S: a49746ee742866f0db4cebbc2de17733c0ace5b8 192.168.1.15:6379slots: (0 slots) slavereplicates b1b8e906ea2c7b71e567485f02d0007ad902a5c5 S: c85a2a1474dea3fbf4ac4073c437b8eada04b806 192.168.1.14:6379slots: (0 slots) slavereplicates 3dd1687f4c9d37a4bc095705a2ab0a35b27b59cc S: 3c0b9fe153392132003c9707d5132647b59031d4 192.168.1.16:6379slots: (0 slots) slavereplicates 7cd1b4dc246c4c11780be1186f118ce79794d182 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 4096 What is the receiving node ID? b1b8e906ea2c7b71e567485f02d0007ad902a5c5 Please enter all the source node IDs.Type 'all' to use all the nodes as source nodes for the hash slots.Type 'done' once you entered all the source nodes IDs. Source node #1:e4138e59c01d0ed762162f7dddb61d7cdff1b85d Source node #2:done ... ... Do you want to proceed with the proposed reshard plan (yes/no)? yes
  • 查看集群信息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 2 keys | 8192 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. 192.168.1.17:6379 (e4138e59...) -> 0 keys | 0 slots | 0 slaves. [OK] 5 keys in 4 masters. 0.00 keys per slot on average.
  • 移除master

[root@manager1 ~]# redis-trib.rb del-node 192.168.1.11:6379 e4138e59c01d0ed762162f7dddb61d7cdff1b85d >>> Removing node e4138e59c01d0ed762162f7dddb61d7cdff1b85d from cluster 192.168.1.11:6379 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node.
  • 查看集群信息

[root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 2 keys | 8192 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 4096 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 4096 slots | 1 slaves. [OK] 5 keys in 3 masters. 0.00 keys per slot on average.
  • 在所有節點上重新均衡分配哈希槽

[root@manager1 ~]# redis-trib.rb rebalance 192.168.1.11:6379 [root@manager1 ~]# redis-trib.rb info 192.168.1.11:6379 192.168.1.11:6379 (b1b8e906...) -> 2 keys | 5461 slots | 1 slaves. 192.168.1.13:6379 (3dd1687f...) -> 1 keys | 5462 slots | 1 slaves. 192.168.1.12:6379 (7cd1b4dc...) -> 2 keys | 5461 slots | 1 slaves. [OK] 5 keys in 3 masters. 0.00 keys per slot on average.

總結

以上是生活随笔為你收集整理的Redis集群的基本配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。