linux redis7.4分片集群

计划节点

master  192.168.31.33:6379

slave  192.168.31.33:6380

master  192.168.31.34:6379

slave 192.168.31.34:6380

master  192.168.31.35:6379

slave  192.168.31.35:6380

各个服务器的master目录都是/data/redis-master/redis-7.4.1/,slave目录都是 /data/redis-slave/redis-7.4.1/

1、修改master节点配置

# 修改
bind 0.0.0.0
pidfile /var/run/redis_6379.pid
logfile /data/redis-master/redis-7.4.1/logs/redis.log
dir /data/redis-master/redis-7.4.1/data
masterauth sykj@2024
requirepass sykj@2024
# 添加
cluster-enabled yes
cluster-config-file /data/redis-master/redis-7.4.1/cluster.conf
cluster-node-timeout  5000

2、修改slave节点配置

# 修改
bind 0.0.0.0
pidfile /var/run/redis_6380.pid
logfile /data/redis-slave/redis-7.4.1/logs/redis.log
dir /data/redis-slave/redis-7.4.1/data
masterauth sykj@2024
requirepass sykj@2024
# 添加
cluster-enabled yes
cluster-config-file /data/redis-slave/redis-7.4.1/cluster.conf
cluster-node-timeout  5000

3、各个服务器配置master和slave的systemd服务

vim /etc/systemd/system/redis-master.service

[Unit]
Description=Redis
After=network.target

[Service]
PIDFile=/var/run/redis/redis-master-server.pid
ExecStart=/data/redis-master/redis-7.4.1/src/redis-server /data/redis-master/redis-7.4.1/redis.conf
Restart=always

[Install]
WantedBy=multi-user.target
vim /etc/systemd/system/redis-slave.service

[Unit]
Description=Redis
After=network.target

[Service]
PIDFile=/var/run/redis/redis-slave-server.pid
ExecStart=/data/redis-slave/redis-7.4.1/src/redis-server /data/redis-slave/redis-7.4.1/redis.conf
Restart=always

[Install]
WantedBy=multi-user.target
systemctl daemon-reload

4、启动master和slave

systemctl start redis-master
systemctl start redis-slave

5、构建集群

默认前三个主机,为Master ,分配Hash 槽,后三个主机 为 Slave,具体哪两个互为主从,后续可以通过集群状态查看。

 /data/redis-master/redis-7.4.1/src/redis-cli -a sykj@2024 --cluster create 192.168.31.33:6379 192.168.31.34:6379 192.168.31.35:6379 192.168.31.33:6380 192.168.31.34:6380 192.168.31.35:6380 --cluster-replicas 1               

6、查询集群状态信息

/data/redis-master/redis-7.4.1/src/redis-cli -a sykj@2024 --cluster check 192.168.31.33:6379

7、测试集群功能

连接集群的任意节点, 设置 key ,发现可以被均分到其它节点

连接到任意的其它节点,都可以读取到刚才设置的 key

 8、测试高可用

关闭其中一个 master,在一定时间过后,3个 slave中的一个 成为 Master,分配hash槽,

并获得离线的master的数据。 原先保存在关闭的master上的数据,依然可正常访问。

此时 依然维持有三个Master,Slave 只有两个,集群依然正常运作,

让 之前关闭的master 实例重启后, 自动作为 Slave加入集群

 

 

## 查看 redis-cli --cluster 子命令相关的帮助

[root@redis-32 /data/redis]# redis-cli  --cluster  help

 

  1. create:创建集群

  2. check:检查集群

  3. info:查看集群信息

  4. fix:修复集群

  5. reshard:在线迁移slot

  6. rebalance:平衡集群节点slot数量

  7. add-node:添加新节点

  8. del-node:删除节点

  9. set-timeout:设置节点的超时时间

  10. call:在集群所有节点上执行命令

  11. import:将外部redis数据导入集群

 

posted @ 2024-10-29 18:09  苦逼yw  阅读(15)  评论(0编辑  收藏  举报