javascript
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. 集群驗證
| 解決現有系統單節點并發壓力和物理上限問題 | 通過添加服務器的數量,提供相同的服務,從而讓服務器達到一個穩定、高效的狀態 |
一、節點分布總覽
演示案例
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 |
二、軟件配置初始化
- 下載
- 解壓
- 編譯安裝
- 配置抽離
- 編輯配置
-
修改配置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.conf redis-8003.conf三、集群配置修改
分別修改redis-7002.conf、redis-7003.conf、redis-8001.conf、redis-8002.conf、redis-8003.conf
3.1. redis-7002.conf
vim redis-7002.confport 把7001 修改為7002
將7001.pid 修改為 7002.pid
將nodes-7001.conf 修改為 nodes-7002.conf
3.2. redis-7003.conf
vim redis-7003.confport 把7001 修改為7003
將7001.pid 修改為 7003.pid
將nodes-7001.conf 修改為 nodes-7003.conf
3.3. redis-8001.conf
vim redis-8001.confport 把7001 修改為8001
將7001.pid 修改為 8001.pid
將nodes-7001.conf 修改為 nodes-8001.conf
3.4. redis-8002.conf
vim redis-8002.conf92行 port 把7001 修改為8002
將7001.pid 修改為 8002.pid
將nodes-7001.conf 修改為 nodes-8002.conf
3.5. redis-8003.conf
vim redis-8003.confport 把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 redis操作日志如下:
[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 80034.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查看集群信息:cluster info
查看節點信息:cluster nodes
注:目前3主3從 當主節點掛掉之后,從節點自動上位
操作日志如下:
總結
以上是生活随笔為你收集整理的SpringBoot2.x整合Redis 分布式集群_01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二、项目运行环境【PMP 】
- 下一篇: SpringBoot整合Redis 主从