zoukankan      html  css  js  c++  java
  • Docker + Redis5.0.9集群搭建,3主3从(分片 + 高可用 + 负载均衡)

    在Docker中部署Redis集群,3台主服务 + 3台从服务,实现分片,高可用,负载均衡。

    Redis集群模型:

     【第1步】创建一个新的网络,取名叫redis

    docker network create redis --subnet 172.38.0.0/16

    查看网络

    docker network ls

      

     【第2步】创建 redis配置文件

    通过脚本创建6个redis的node目录与redis配置文件:

    for port in $(seq 1 6); \
    do \
    mkdir -p /mydata/redis/node-${port}/conf
    cat << EOF > /mydata/redis/node-${port}/conf/redis.conf
    port 6379
    bind 0.0.0.0
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    cluster-announce-ip 172.38.0.1${port}
    cluster-announce-port 6379
    cluster-announce-bus-port 16379
    appendonly yes
    EOF
    done

    6个redis的ip地址分别为 172.38.0.11 到 172.38.0.16

    6个node-x目录,node-1节点与node-6节点的配置文件内容分别为如下图:

      

     redis-1节点的配置内容为:

    port 6379
    bind 0.0.0.0
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    cluster-announce-ip 172.38.0.11
    cluster-announce-port 6379
    cluster-announce-bus-port 16379
    appendonly yes

    6个配置文件除了cluster-announce-ip的值不一样,其它都一样。

    【第3步】分别启动6个redis容器

    启动redis-1
    docker run -d --name redis-1 -p 6371:6379 -p 16371:16379 --restart=always \
    -v /mydata/redis/node-1/data:/data \
    -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
    
    启动redis-2
    docker run -d --name redis-2 -p 6372:6379 -p 16372:16379 --restart=always \
    -v /mydata/redis/node-2/data:/data \
    -v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
    
    启动redis-3
    docker run -d --name redis-3 -p 6373:6379 -p 16373:16379 --restart=always \
    -v /mydata/redis/node-3/data:/data \
    -v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
    
    启动redis-4
    docker run -d --name redis-4 -p 6374:6379 -p 16374:16379 --restart=always \
    -v /mydata/redis/node-4/data:/data \
    -v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
    
    启动redis-5
    docker run -d --name redis-5 -p 6375:6379 -p 16375:16379 --restart=always \
    -v /mydata/redis/node-5/data:/data \
    -v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
    
    启动redis-6
    docker run -d --name redis-6 -p 6376:6379 -p 16376:16379 --restart=always \
    -v /mydata/redis/node-6/data:/data \
    -v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
    --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

     

      

     【第4步】创建集群

    任意进入其中一个 redis节点,比如进入redis-1节点。

    docker exec -it redis-1 /bin/sh
    ls

    注意,是/bin/sh  而不是 /bin/bash

      

    进入 redis 节点后,默认是/data  目录。

    用redis-cli --cluster create命令创建集群

    redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379  172.38.0.14:6379  172.38.0.15:6379  172.38.0.16:6379 --cluster-replicas 1

    执行过程中会提示是否同意上面的配置 :

    Can I set the above configuration? (type 'yes' to accept): 

    输入yes

    集群创建完成后,输出信息:

      

    【第5步】连接集群

    连接集群
    redis-cli -c

    注意,连接集群需要加 -c 参数,不加-c参数会连接单机。

      

     查看集群信息

    查看集群信息
    cluster info

     三个主节点。

    查看集群节点信息:

    查看集群节点信息
    cluster nodes

    ip末位为 11,12,13的节点为主,ip末位为14,15,16的节点为从。

    当前节点为172.38.0.11

    设置与读取值

    set key1 value1
    set key2 value2
    set key3 value3
    set key4 value4
    set key5 value5
    set key6 value6
    get key1
    get key2
    get key3

  • 相关阅读:
    把手机用户的身份验证简化到极致 – IEMI
    WIFI 功放芯片确定功率大小
    告别镜像端口:完成流量监控全功略
    windows 2003 server 配置为NTP服务器
    【转】VIM 多文件跳转
    【转】在Linux下FQ的看过来
    【转】VIM自动完成
    【转】VIM下的跳转练习
    【转】vim 窗口调整
    【转】Cscope的使用(领略Vim + Cscope的强大魅力)
  • 原文地址:https://www.cnblogs.com/yyee/p/15731268.html
Copyright © 2011-2022 走看看