docker搭建redis集群

一、概览

1、redis集群最少需要6个节点,且redis集群下只有db0,不支持多db。

2、服务器

  • 服务器一:192.168.3.13:6391、192.168.3.13:6392、192.168.3.13:6393
  • 服务器二:192.168.3.14:6391、192.168.3.14:6392、192.168.3.14:6393

3、开放端口

  • 节点访问:6391-6393
  • 集群连接:16391-16393
# 添加6391端口
firewall-cmd --zone=public --add-port=6391/tcp --permanent

# 刷新防火墙
firewall-cmd --reload

二、创建容器

  • 分别在二台服务器上执行以下操作

1、开放以上端口

2、安装镜像

docker pull redis:6.2.5

3、新建目录和配置文件

for port in $(seq 6391 6393); \
do \
mkdir -p /home/apps/redis-node-${port}/{conf,data}
touch /home/apps/redis-node-${port}/conf/redis.conf
cat << EOF >/home/apps/redis-node-${port}/conf/redis.conf
#端口
port ${port} 
bind 0.0.0.0
#启用集群模式
cluster-enabled yes 
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
# 集群连接地址及端口
cluster-announce-ip 192.168.3.13
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
#集群加密
masterauth 123456
requirepass 123456
EOF
done

4、创建容器并启动

# 循环创建节点
for port in `seq 6391 6393`; do
  docker run -d --name redis-node-${port} --restart=always --privileged=true -v /home/apps/redis-node-${port}/conf/redis.conf:/etc/redis/redis.conf -v /home/apps/redis-node-${port}/data:/data --net=host redis:6.2.5 redis-server /etc/redis/redis.conf
done

三、集群配置

  • 随便进一台服务器进行配置

1、集群配置

# 进入某一个容器
docker exec -it redis-node-6391 /bin/bash

# 组建集群
redis-cli -p 6391 -a 123456 --cluster create 192.168.3.13:6391 192.168.3.13:6392 192.168.3.13:6393 192.168.3.14:6391 192.168.3.14:6392 192.168.3.14:6393 --cluster-replicas 1

2、查看集群信息

redis-cli -p 6391 -a 123456

查看节点

cluster nodes

3、测试集群

  • 使用 redis-cli -c 连接到集群上,set一个值,然后从其他节点再获取值查看是否成功
# 客户端连接,-c 代表连接集群
redis-cli -c -p 6391 -a 123456

四、程序中使用

1、spring boot配置

spring:
  redis:
    password: 123456
    cluster:
      nodes: 192.168.3.13:6391,192.168.3.13:6392,192.168.3.13:6393,192.168.3.14:6391,192.168.3.14:6392,192.168.3.14:6393

五、参考

posted @ 2022-05-14 00:19  edda_huang  阅读(1344)  评论(0编辑  收藏  举报