天天看點

SpringBoot2.x整合Redis 分布式叢集_01

文章目錄

  • ​​一、節點分布總覽​​
  • ​​二、軟體配置初始化​​
  • ​​三、叢集配置修改​​
  • ​​3.1. redis-7002.conf​​
  • ​​3.2. redis-7003.conf​​
  • ​​3.3. redis-8001.conf​​
  • ​​3.4. redis-8002.conf​​
  • ​​3.5. redis-8003.conf​​
  • ​​3.6. redis啟動​​
  • ​​四、 節點握手​​
  • ​​4.1. 節點握手​​
  • ​​4.2. 記錄檔如下:​​
  • ​​五、槽位配置設定和配置主從​​
  • ​​5.1. 槽位配置設定​​
  • ​​5.2. 主從複制配置設定​​
  • ​​5.3. 叢集驗證​​
Redis 分布式叢集能解決的問題 叢集 概念
解決現有系統單節點并發壓力和實體上限問題 通過添加伺服器的數量,提供相同的服務,進而讓伺服器達到一個穩定、高效的狀态
一、節點分布總覽

示範案例

3主3從 橫向擴充

伺服器 端口 節點說明
192.168.0.114 7001 master
192.168.0.114 7002 master
192.168.0.114 7003 master
192.168.0.114 8001 slave
192.168.0.114 8002 slave
192.168.0.114 8003 slave
二、軟體配置初始化
  • 下載下傳
wget      
  • 解壓
cd /app
tar      
  • 編譯安裝
cd redis-6.2.6/
make install      
  • 配置抽離
mkdir /app/redis-cluster/
cp      
  • 編輯配置
vim      
  • 修改配置7處:

    bind ​

    ​127.0.0.1​

    ​ 改為 bind ​

    ​0.0.0.0​

    ​ port ​

    ​6379​

    ​ 改為 port ​

    ​7001​

    ​ daemonize ​

    ​no​

    ​ 改為 daemonize ​

    ​yes​

    ​ pidfile /var/run/redis_​

    ​6379​

    ​.pid 改為 pidfile /var/run/redis_​

    ​7001​

    ​.pid

    注釋打開cluster-enabled yes

    注釋打開 cluster-node-timeout 15000

    注釋打開 nodes-​

    ​6379​

    ​.conf 改為nodes-​

    ​7001​

    ​.conf
  • 叢集配置配置設定
将/app/redis-cluster/redis.conf複制6份并重命名
cd app/redis-cluster/
cp redis.conf redis-7001.conf
cp redis.conf redis-7002.conf
cp redis.conf redis-7003.conf
cp redis.conf redis-8001.conf
cp redis.conf redis-8002.conf
cp      
三、叢集配置修改
分别修改redis-7002.conf、redis-7003.conf、redis-8001.conf、redis-8002.conf、redis-8003.conf

3.1. redis-7002.conf

vim      

port 把​

​7001​

​​ 修改為​

​7002​

​​ 将​

​7001​

​.pid 修改為 ​

​7002​

​.pid

将nodes-​

​7001​

​.conf 修改為 nodes-​

​7002​

​.conf

3.2. redis-7003.conf

vim      

port 把​

​7001​

​​ 修改為​

​7003​

​​ 将​

​7001​

​.pid 修改為 7003.pid

将nodes-​

​7001​

​.conf 修改為 nodes-​

​7003​

​.conf

3.3. redis-8001.conf

vim      

port 把​

​7001​

​​ 修改為​

​8001​

​​ 将​

​7001​

​.pid 修改為 ​

​8001​

​.pid

将nodes-​

​7001​

​.conf 修改為 nodes-​

​8001​

​.conf

3.4. redis-8002.conf

vim      

92行 port 把​

​7001​

​​ 修改為​

​8002​

​​ 将​

​7001​

​.pid 修改為 ​

​8002​

​.pid

将nodes-​

​7001​

​.conf 修改為 nodes-​

​8002​

​.conf

3.5. redis-8003.conf

vim      

port 把​

​7001​

​​ 修改為​

​8003​

​​ 将​

​7001​

​.pid 修改為 ​

​8003​

​.pid

将nodes-​

​7001​

​.conf 修改為 nodes-​

​8003​

​.conf

3.6. redis啟動

/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7002.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7003.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8002.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8003.conf      

檢視程序:

ps -ef |grep      

記錄檔如下:

[root@localhost ~]# ps -ef |grep redis
root       7770      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7001 [cluster]
root       7775      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7002 [cluster]
root       7780      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7003 [cluster]
root       7785      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8001 [cluster]
root       7790      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8002 [cluster]
root       7795      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8003 [cluster]
root       7800   7404  0 11:29 pts/1    00:00:00 grep --color=auto redis
[root@localhost ~]#      
四、 節點握手

上面僅僅是搭建了叢集,6個節點之間還沒有關系,下面通過 節點握手讓叢集各節點之間,發生關系。

4.1. 節點握手

7001節點,依次執行(一條一條複制粘貼)以下指令:

/app/redis-6.2.6/src/redis-cli -h localhost -p 7001
cluster meet 192.168.0.114 7002
cluster meet 192.168.0.114 7003
cluster meet 192.168.0.114 8001
cluster meet 192.168.0.114 8002
cluster meet 192.168.0.114 8003      

4.2. 記錄檔如下:

[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> cluster meet 192.168.0.114 7002
OK
localhost:7001> cluster meet 192.168.0.114 7003
OK
localhost:7001> cluster meet 192.168.0.114 8001
OK
localhost:7001> cluster meet 192.168.0.114 8002
OK
localhost:7001> cluster meet 192.168.0.114 8003
OK
localhost:7001>      
五、槽位配置設定和配置主從

5.1. 槽位配置設定

/app/redis-6.2.6/src/redis-cli -h localhost -p 7001 cluster addslots {0..5461}
/app/redis-6.2.6/src/redis-cli -h localhost -p 7002 cluster addslots {5462..10922}
/app/redis-6.2.6/src/redis-cli -h localhost -p 7003 cluster addslots {10923..16383}      
記錄檔:
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001 cluster addslots {0..5461}
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7002 cluster addslots {5462..10922}
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7003 cluster addslots {10923..16383}
OK
[root@localhost ~]#      
登入7001節點
/app/redis-6.2.6/src/redis-cli -h localhost -p 7001
檢視叢集資訊:cluster info
檢視節點資訊:cluster nodes

記錄檔:
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> 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:5
cluster_my_epoch:0
cluster_stats_messages_ping_sent:278
cluster_stats_messages_pong_sent:298
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:581
cluster_stats_messages_ping_received:298
cluster_stats_messages_pong_received:283
cluster_stats_messages_received:581
localhost:7001> cluster nodes
c1526c666b10d8e21858121be70ad74e391c9b7c 192.168.0.114:8002@18002 master - 0 1587267512220 4 connected
f990f845ed898dea7b7f8f39befd4f0dc247988a 192.168.0.114:8003@18003 master - 0 1587267510000 5 connected
fd35850bf465cb53b0ffc8f843078c171d14583d 192.168.0.114:7001@17001 myself,master - 0 1587267510000 0 connected 0-5461
3523d3510e7a551929729798f5ea0e9b65d85eea 192.168.0.114:7003@17003 master - 0 1587267511212 2 connected 10923-16383
faaa97d6fc1f163e9eb2549c77b4f6f3c68bc025 192.168.0.114:8001@18001 master - 0 1587267511000 3 connected
72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 192.168.0.114:7002@17002 master - 0 1587267512000 1 connected 5462-10922
localhost:7001>


注:目前都是master,節點資訊等會要用,這個視窗先不要關閉,
在新開一個視窗,進行下一步操作      

5.2. 主從複制配置設定

複制原則:8001複制7001、8001複制7001、8003複制7003

/app/redis-6.2.6/src/redis-cli -h localhost -p 8001 cluster replicate fd35850bf465cb53b0ffc8f843078c171d14583d
/app/redis-6.2.6/src/redis-cli -h localhost -p 8002 cluster replicate 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc
/app/redis-6.2.6/src/redis-cli -h localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eea      

記錄檔如下:

[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8001 cluster replicate fd35850bf465cb53b0ffc8f843078c171d14583d
localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eeaOK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8002 cluster replicate 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eea
OK
[root@localhost ~]#      

5.3. 叢集驗證

登入7001節點

/app/redis-6.2.6/src/redis-cli -h localhost -p 7001      
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> 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:5
cluster_my_epoch:0
cluster_stats_messages_ping_sent:692
cluster_stats_messages_pong_sent:734
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:1431
cluster_stats_messages_ping_received:734
cluster_stats_messages_pong_received:697
cluster_stats_messages_received:1431
localhost:7001> cluster nodes
c1526c666b10d8e21858121be70ad74e391c9b7c 192.168.0.114:8002@18002 slave 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 0 1587267912538 4 connected
f990f845ed898dea7b7f8f39befd4f0dc247988a 192.168.0.114:8003@18003 slave 3523d3510e7a551929729798f5ea0e9b65d85eea 0 1587267911000 5 connected
fd35850bf465cb53b0ffc8f843078c171d14583d 192.168.0.114:7001@17001 myself,master - 0 1587267909000 0 connected 0-5461
3523d3510e7a551929729798f5ea0e9b65d85eea 192.168.0.114:7003@17003 master - 0 1587267913546 2 connected 10923-16383
faaa97d6fc1f163e9eb2549c77b4f6f3c68bc025 192.168.0.114:8001@18001 slave fd35850bf465cb53b0ffc8f843078c171d14583d 0 1587267910000 3 connected
72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 192.168.0.114:7002@17002 master - 0 1587267912000 1 connected 5462-10922
localhost:7001>      

繼續閱讀