Redis 分布式集群搭建2022版本(linux环境)

Linux环境 安装 Redis-6.2.6 配置运行_01
https://gblfy.blog.csdn.net/article/details/105583077

Redis 分布式集群能解决的问题 集群 概念
解决现有系统单节点并发压力和物理上限问题 通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态
一、节点分布总览

演示案例
3主3从 横向扩展

服务器 端口 节点说明
192.168.0.101 7001 master
192.168.0.101 7002 slave
192.168.0.102 7003 master
192.168.0.102 7004 slave
192.168.0.103 7005 master
192.168.0.103 7006 slave
二、软件配置初始化

2.1~2.5属于公共部分,101/102/103服务器需要依次执行

2.1. 下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.2. 解压
cd /app
tar -zxvf redis-6.2.6.tar.gz
2.3. 编译安装
cd redis-6.2.6/
make install
2.4. 配置抽离
mkdir /app/redis-cluster/
cp /app/redis-6.2.6/redis.conf /app/redis-cluster/
2.5. 配置编辑
vim /app/redis-cluster/redis.conf
2.6. 101节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7001
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7001.pid

注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7001.conf
保存退出
2.7. 102 节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7003
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7003.pid

注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7003.conf
保存退出
2.8. 103节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7005
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7005.pid

注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7005.conf
保存退出
三、软件配置集群化
3.1. 101节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7001.conf
cp redis.conf redis-7002.conf
vim redis-7002.conf
  • 具体修改详细
    把 port 7001修改为 7002
    把pidfile /var/run/redis_ 7001.pid 改为 pidfile /var/run/redis_ 7002.pid
    把修改node节点 cluster-config-file nodes- 7001.conf 调整为cluster-config-file nodes- 7002.conf

  • 启动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
ps -ef |grep redis
3.2. 102节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7003.conf
cp redis.conf redis-7004.conf
vim redis-7004.conf
  • 具体修改详细

把 port 7003 修改为 7004
把pidfile /var/run/redis_ 7003.pid 改为 pidfile /var/run/redis_ 7004.pid
把修改node节点 cluster-config-file nodes- 7003.conf调整为cluster-config-file nodes- 7004.conf

  • 启动redis
/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-7004.conf
ps -ef |grep redis
3.3. 103节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7005.conf
cp redis.conf redis-7006.conf
vim redis-7006.conf
  • 具体修改详情

把 port 7005 修改为 7006
把pidfile /var/run/redis_ 7005.pid 改为 pidfile /var/run/redis_ 7006.pid
把修改node节点 cluster-config-file nodes- 7005.conf 调整为cluster-config-file nodes- 7006.conf

  • 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7005.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7006.conf
 ps -ef |grep redis
四、节点握手

上面仅仅是搭建了集群,6个节点之间还没有关系,下面通过 节点握手让集群各节点之间,发生关系。

4.1. 关闭防火墙

centos7.x

systemctl stop firewalld

centos6.x

service iptables stop
4.2. 节点握手

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

/app/redis-6.2.6/src/redis-cli -h 192.168.0.101  -p 7001
cluster meet 192.168.0.101  7002
cluster meet 192.168.0.102  7003
cluster meet 192.168.0.102  7004
cluster meet 192.168.0.103  7005
cluster meet 192.168.0.103  7006
五、槽位分配

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

5.1. 槽位分配
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001 cluster addslots {
    
    0..5461}
/app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7003 cluster addslots {
    
    5462..10922}
/app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7005 cluster addslots {
    
    10923..16383}
5.2. 查看集群信息
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001

查看集群信息:cluster info
查看节点信息:cluster nodes

5.3. 日志操作信息
root@redis-cluster]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
192.168.0.101: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:1
cluster_stats_messages_ping_sent:670
cluster_stats_messages_pong_sent:676
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:1351
cluster_stats_messages_ping_received:676
cluster_stats_messages_pong_received:675
cluster_stats_messages_received:1351
192.168.0.101:7001> cluster nodes
86002bbf6c62cd5d7511473ee1947531c25e1348 192.168.0.102:7003@17003 master - 0 1647941463270 3 connected 5462-10922
5f1128f200cd4446432e499a1a16f17c5a6178a7 192.168.0.103:7006@17006 master - 0 1647941462000 5 connected
895cfd76481d0ceba0fa5c5ba715980d08c2af83 192.168.0.102:7004@17004 master - 0 1647941464276 4 connected
59423855a7d7062a73f3de80826cbcd1021631de 192.168.0.101:7001@17001 myself,master - 0 1647941461000 2 connected 0-5461
4c9c2e112fded275bd02ab579ab8333c1cc98030 192.168.0.101:7002@17002 master - 0 1647941461000 1 connected
8de49a5b81ab20c4e087dcaeba9aa126773f0657 192.168.0.103:7005@17005 master - 0 1647941462266 0 connected 10923-16383
192.168.0.101:7001>

注:目前都是master,节点信息等会要用,这个窗口先不要关闭,
再新开一个窗口,进行下一步操作

六、配置主从

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

6.1. 配置主从

主从复制原则(交叉复制):7004复制7001、7006复制7003、7002复制7005

/app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7004 cluster replicate 59423855a7d7062a73f3de80826cbcd1021631de
/app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7006 cluster replicate 86002bbf6c62cd5d7511473ee1947531c25e1348
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7002 cluster replicate 8de49a5b81ab20c4e087dcaeba9aa126773f0657
6.2. 操作记录
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7004 cluster replicate 59423855a7d7062a73f3de80826cbcd1021631de
OK
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7006 cluster replicate 86002bbf6c62cd5d7511473ee1947531c25e1348
OK
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7002 cluster replicate 8de49a5b81ab20c4e087dcaeba9aa126773f0657
OK
[root@ ~]#
七、集群验证

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

7.1. 登录7001节点
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
7.2. 查看集群信息
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001

查看集群信息:cluster info
查看节点信息:cluster nodes

注:目前3主3从 当主节点挂掉之后,从节点自动上位

7.3. 操作记录
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
192.168.0.101: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:1
cluster_stats_messages_ping_sent:1365
cluster_stats_messages_pong_sent:1344
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:2714
cluster_stats_messages_ping_received:1344
cluster_stats_messages_pong_received:1370
cluster_stats_messages_received:2714
192.168.0.101:7001> cluster nodes
8de49a5b81ab20c4e087dcaeba9aa126773f0657 192.168.0.103:7005@17005 master - 0 1647932952097 4 connected 10923-16383
86002bbf6c62cd5d7511473ee1947531c25e1348 192.168.0.102:7003@17003 master - 0 1647932951094 2 connected 5462-10922
59423855a7d7062a73f3de80826cbcd1021631de 192.168.0.101:7001@17001 myself,master - 0 1647932950000 1 connected 0-5461
4c9c2e112fded275bd02ab579ab8333c1cc98030 192.168.0.101:7002@17002 slave 8de49a5b81ab20c4e087dcaeba9aa126773f0657 0 1647932950092 4 connected
5f1128f200cd4446432e499a1a16f17c5a6178a7 192.168.0.103:7006@17006 slave 86002bbf6c62cd5d7511473ee1947531c25e1348 0 1647932949000 2 connected
895cfd76481d0ceba0fa5c5ba715980d08c2af83 192.168.0.102:7004@17004 slave 59423855a7d7062a73f3de80826cbcd1021631de 0 1647932951000 1 connected
192.168.0.101:7001> exit
[root@~]#

猜你喜欢

转载自blog.csdn.net/weixin_40816738/article/details/123676653
今日推荐