docker搭建redis-cluster集群环境教程

本文将讲解如何通过docker搭建redis-cluster集群环境

第一步:准备好docker-compose-redis.yaml文件内容如下

version: '3.4'
services:
  node1:
    image: redis:5.0.5
    container_name: redis-node1
    restart: always
    ports:
      - 6061:6061
      - 16061:16061
    volumes:
      - /home/smb/data/redis-cluster/node1:/data
      - /home/smb/config/redis-cluster/node1:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf
       
  node2:
    image: redis:5.0.5
    container_name: redis-node2
    restart: always
    ports:
      - 6062:6062
      - 16062:16062
    volumes:
      - /home/smb/data/redis-cluster/node2:/data
      - /home/smb/config/redis-cluster/node2:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf
       
       
  node3:
    image: redis:5.0.5
    container_name: redis-node3
    restart: always
    ports:
      - 6063:6063
      - 16063:16063
    volumes:
      - /home/smb/data/redis-cluster/node3:/data
      - /home/smb/config/redis-cluster/node3:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf
       
  node4:
    image: redis:5.0.5
    container_name: redis-node4
    restart: always
    ports:
      - 6064:6064
      - 16064:16064
    volumes:
      - /home/smb/data/redis-cluster/node4:/data
      - /home/smb/config/redis-cluster/node4:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf
       
  node5:
    image: redis:5.0.5
    container_name: redis-node5
    restart: always
    ports:
      - 6065:6065
      - 16065:16065
    volumes:
      - /home/smb/data/redis-cluster/node5:/data
      - /home/smb/config/redis-cluster/node5:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf
       
  node6:
    image: redis:5.0.5
    container_name: redis-node6
    restart: always
    ports:
      - 6066:6066
      - 16066:16066
    volumes:
      - /home/smb/data/redis-cluster/node6:/data
      - /home/smb/config/redis-cluster/node6:/usr/local/etc/redis
    command:
      redis-server /usr/local/etc/redis/redis.conf

docker搭建redis-cluster集群环境教程_第1张图片

第二步:准备好redis.conf文件,总共设置6个节点(3主3从),每个节点的redis配置文件设置的端口分别为6061-6066。根据实际情况修改好6个配置文件的端口,以及对于的cluster-config-file文件。

 

protected-mode no
port 6061  
#daemonize yes 
pidfile /var/run/redis_6061.pid 
cluster-enabled yes 
cluster-config-file nodes_6061.conf

  

 

docker搭建redis-cluster集群环境教程_第2张图片

第三步:进入 docker-compose-redis.yaml文件所在目录执行docker-compose -f docker-compose-redis.yaml up  -d命令,启动6个redis.

docker-compose -f docker-compose-redis.yaml up  -d

 

第四步:进入其中一个redis节点

docker exec -it redis-node1 /bin/bash

 

第五步:在第四步所在的redis节点中,执行创建redis集群命令(以下节点和端口根据实际情况填写),获取容器的具体ip可通过第6步的教程获取

redis-cli --cluster create  172.19.0.3:6061  172.19.0.2:6062 172.19.0.7:6063 172.19.0.4:6064 172.19.0.6:6065  172.19.0.5:6066

 

第六步:获取节点的ip

1、通过查看docker网络

docker network  ls

docker搭建redis-cluster集群环境教程_第3张图片

2、查看redis集群使用的网络下的容器ip

docker inspect redis-cluster_default

docker搭建redis-cluster集群环境教程_第4张图片

 

第七步:通过命令行连接连接集群,连接其中一个节点即可连接到集群

redis-cli -c -h  172.19.0.2 -p  6065

 

如果不想通过进入节点创建集群命令,可通过docker 下载一个redis客户端来执行创建集群命令

对应的pull镜像命令

docker pull goodsmileduck/redis-cli:v5.0.3

 

 

 

你可能感兴趣的:(docker搭建redis-cluster集群环境教程)