版本:6.2.0 分片+高可用+负载均衡

单机

  1. mkdir -p /home/vvvv/docker/dockerVolumes/redis/data
  2. mkdir -p /home/vvvv/docker/dockerVolumes/redis/conf
  3. vim /home/vvvv/docker/dockerVolumes/redis/conf/redis.conf
  4. port ${port}
  5. bind 0.0.0.0
  6. appendonly yes
  7. docker run -p 6379:6379 -p 16379:16379 --name redis -d \
  8. -v /home/vvvv/docker/dockerVolumes/redis/data:/data \
  9. -v /home/vvvv/docker/dockerVolumes/redis/conf/redis.conf:/etc/redis/redis.conf \
  10. -v /etc/localtime:/etc/localtime \
  11. redis redis-server /etc/redis/redis.conf

集群

1、通过sh脚本创建6个redis配置

  1. for port in $(seq 1 6);
  2. do
  3. mkdir -p /home/vvvv/docker/dockerVolumes/redisCluster/node-${port}/conf
  4. touch /home/vvvv/docker/dockerVolumes/redisCluster/node-${port}/conf/redis.conf
  5. cat << EOF >/home/vvvv/docker/dockerVolumes/redisCluster/node-${port}/conf/redis.conf
  6. port ${port}
  7. bind 0.0.0.0
  8. cluster-enabled yes
  9. cluster-config-file nodes.conf
  10. cluster-node-timeout 5000
  11. cluster-announce-ip xxx.xxx.xxx.xxx(外网使用填写宿主机ip)
  12. cluster-announce-port 637${port}
  13. cluster-announce-bus-port 1637${port}
  14. appendonly yes
  15. EOF
  16. done

(1)port(端口号) (2)masterauth(设置集群节点间访问密码,跟下面一致) (3)requirepass(设置redis访问密码) (4)cluster-enabled yes(启动集群模式) (5)cluster-config-file nodes.conf(集群节点信息文件) (6)cluster-node-timeout 5000(redis节点宕机被发现的时间) (7)cluster-announce-ip(集群节点的汇报ip,防止nat,预先填写为网关ip后续需要手动修改配置文件) (8)cluster-announce-port(集群节点的汇报port,防止nat) (9)cluster-announce-bus-port(集群节点的汇报bus-port,防止nat) (10) appendonly yes(开启aof)

查看结构:tree /home/vvvv/docker/dockerVolumes/redisCluster

2、创建一个redis的网卡

docker networt create redis-net

—subnet 172.38.0.0/16

3、通过sh脚本启动6个容器服务

  1. for port in $(seq 1 6);
  2. do
  3. docker run -p 637${port}:637{port} -p 1637${port}:1637${port} --name redis-${port} \
  4. -v /home/vvvv/docker/dockerVolumes/redisCluster/node-${port}/data:/data \
  5. -v /home/vvvv/docker/dockerVolumes/redisCluster/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
  6. -d --net redis redis \
  7. redis-server /etc/redis/redis.conf
  8. echo "redis-${port} 启动成功"
  9. done

4、创建集群

  1. # 先进入容器
  2. docker exec -it redis-1 /bin/sh
  3. #创建集群
  4. redis-cli --cluster create \
  5. xxx.xxx.xxx.xxx:6371 \
  6. xxx.xxx.xxx.xxx:6372 \
  7. xxx.xxx.xxx.xxx:6373 \
  8. xxx.xxx.xxx.xxx:6374 \
  9. xxx.xxx.xxx.xxx:6375 \
  10. xxx.xxx.xxx.xxx:6376 \
  11. --cluster-replicas 1

参考地址: