二进制redis集群部署

二进制redis集群部署

〇、前言

无聊想学罢了

准备环境:

三台centos7 1C1GB即可

三个路相连的地址

主机 IP 节点-角色-实例(端口)
redis1 172.16.106.128 M1-master-7000、S1-slave-7001
redis2 172.16.106.129 M2-master-7002、S2-slave-7003
redis3 172.16.106.130 M3-master-7004、S3-slave-7005

一、二进制部署redis

https://www.cnblogs.com/qq931399960/p/10584877.html

二、配置集群

2.1 创建集群目录

以redis1为例,2和3以此类推

mkdir -p /data/redis-cluster/{7000,7001}

目录结构如下:

/data/redis-cluster/
├── 7000
│   ├── redis.conf  # redis 实例配置文件
│   └── nodes.conf  # redis 集群节点的配置文件(由集群自动创建)
└── 7001
│   ├── redis.conf  # redis 实例配置文件
│   └── nodes.conf  # redis 集群节点的配置文件(由集群自动创建)

2.2 创建实例配置文件

分别复制 redis 源码目录下的 redis.conf 至节点配置和数据目录。

以redis的7000为例,其余以此类推

port 7000
bind 0.0.0.0
dir /data/redis-cluster/7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes			

2.3 记得关闭防火墙或者开放相应端口

systemctl stop firewalld
systemctl disable firewalld

三、启动集群

3.1分别启动各端口服务(后台启动)

# redis1上
redis-server /data/redis-cluster/7000/redis.conf &
redis-server /data/redis-cluster/7001/redis.conf &
# redis2上
redis-server /data/redis-cluster/7002/redis.conf &
redis-server /data/redis-cluster/7003/redis.conf &
# redis3上
redis-server /data/redis-cluster/7004/redis.conf &
redis-server /data/redis-cluster/7005/redis.conf &

3.2 拉集群

redis-cli --cluster create --cluster-replicas 1 \
172.16.106.128:7000 \
172.16.106.128:7001 \
172.16.106.129:7002 \
172.16.106.129:7003 \
172.16.106.130:7004 \
172.16.106.130:7005

根据提示输入yes,出现下列信息则表示集群创建成功。

image-20210317155021612

四、测试

4.1查看集群信息

在任意一个 redis 节点的主机上执行以下命令:

# redis-cli -c -h 192.168.0.100 -p 7000 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:101
cluster_stats_messages_pong_sent:98
cluster_stats_messages_sent:199
cluster_stats_messages_ping_received:93
cluster_stats_messages_pong_received:101
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:199

4.2列出集群节点

在任意一个 redis 节点的主机上执行以下命令,列出集群当前已知的所有节点(node),以及这些节点的相关信息。

# redis-cli -c -h 192.168.0.100 -p 7000 cluster nodes

输出类似以下信息:

50725018cd7f5f20214b0ed462975258397dfe29 192.168.0.102:7005@17005 slave 39e335386bb48f012f433287ed853174009114e5 0 1554876136000 6 connected
8874f69c2f5747cce3a02387167a00cdaba43d3c 192.168.0.100:7001@17001 master - 0 1554876137380 2 connected 5461-10922
c9cb48efbc1a83098cb730a5295402d9cdb343c2 192.168.0.101:7003@17003 slave 917301c74a9ed1ed52918b8e4c7f88de9743c361 0 1554876136375 4 connected
5633e918818033552b1adc089d99fbe9bcf36589 192.168.0.102:7004@17004 slave 8874f69c2f5747cce3a02387167a00cdaba43d3c 0 1554876136072 5 connected
917301c74a9ed1ed52918b8e4c7f88de9743c361 192.168.0.100:7000@17000 myself,master - 0 1554876136000 1 connected 0-5460
39e335386bb48f012f433287ed853174009114e5 192.168.0.101:7002@17002 master - 0 1554876136878 3 connected 10923-16383

4.3查看集群数据槽分配

在任意一个 redis 节点的主机上执行以下命令,显示集群当前所有数据槽的分配情况。

# redis-cli -c -h 192.168.0.100 -p 7000 cluster slots

输出类似以下信息:

1) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "127.0.0.1"
      2) (integer) 7001
   4) 1) "127.0.0.1"
      2) (integer) 7004
2) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 7000
   4) 1) "127.0.0.1"
      2) (integer) 7003
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 7002
   4) 1) "127.0.0.1"
      2) (integer) 7005
posted @ 2021-03-17 15:54  带着泥土  阅读(196)  评论(0编辑  收藏  举报