docker部署redis集群

1.集群规划(使用3台虚拟机)

master1 192.168.88.3:7001
master2 192.168.88.4:7002
master3 192.168.88.5:7003
slave1 192.168.88.4:7004
slave2 192.168.88.5:7005
slave3 192.168.88.3:7006

2.拉取镜像

docker pull redis:5.0

3.在192.168.88.3上创建目录

1)创建redis集群目录

mkdir /home/wangyan/redis-cluster

2)进入目录

cd /home/wangyan/redis-cluster/

3)创建目录 7001 7002 7003 7004 7005 7006

mkdir 7001 && mkdir 7002 && mkdir 7003 && mkdir 7004 && mkdir 7005 && mkdir 7006

4)在每个目录下创建目录config和data

cd 7001;

mkdir conf && mkdir data;

5)进入每个conf目录,创建配置文件redis.conf

7001:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7001
#pid文件生成位置
pidfile /var/run/redis_7001.pid
#集群节点信息文件
cluster-config-file nodes_7001.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.3
#集群节点端口
cluster-announce-port 7001
#集群节点总线端口
cluster-announce-bus-port 17001

7002:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7002
#pid文件生成位置
pidfile /var/run/redis_7002.pid
#集群节点信息文件
cluster-config-file nodes_7002.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.4
#集群节点端口
cluster-announce-port 7002
#集群节点总线端口
cluster-announce-bus-port 17002

7003:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7003
#pid文件生成位置
pidfile /var/run/redis_7003.pid
#集群节点信息文件
cluster-config-file nodes_7003.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.5
#集群节点端口
cluster-announce-port 7003
#集群节点总线端口
cluster-announce-bus-port 17003

7004:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7004
#pid文件生成位置
pidfile /var/run/redis_7004.pid
#集群节点信息文件
cluster-config-file nodes_7004.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.4
#集群节点端口
cluster-announce-port 7004
#集群节点总线端口
cluster-announce-bus-port 17004

7005:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7005
#pid文件生成位置
pidfile /var/run/redis_7005.pid
#集群节点信息文件
cluster-config-file nodes_7005.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.5
#集群节点端口
cluster-announce-port 7005
#集群节点总线端口
cluster-announce-bus-port 17005

7006:

#所有ipv4地址都可以访问
bind 0.0.0.0
#关闭保护模式
protected-mode no
#开启集群
cluster-enabled yes
#集群间访问秘密
masterauth 123456
#redis访问密码
requirepass 123456
#端口
port 7006
#pid文件生成位置
pidfile /var/run/redis_7006.pid
#集群节点信息文件
cluster-config-file nodes_7006.conf
#节点超时
cluster-node-timeout 5000
#AOF持久化
appendonly yes
#刷盘策略 always:每次 everysec:每秒 no:系统决定
appendfsync no
#集群节点ip
cluster-announce-ip 192.168.88.3
#集群节点端口
cluster-announce-port 7006
#集群节点总线端口
cluster-announce-bus-port 17006

4.复制192.168.88.3上的目录到其他两台虚拟机

scp -r /home/wangyan/redis-cluster [email protected]:/home/wangyan/redis-cluster;

scp -r /home/wangyan/redis-cluster [email protected]:/home/wangyan/redis-cluster;

5.docker运行redis

192.168.88.3上运行:

docker run -itd --net=host -v /home/wangyan/redis-cluster/7001/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7001/data:/data --restart=always --name=redis-7001 redis:5.0 redis-server /etc/redis/redis.conf
docker run -itd --net=host -v /home/wangyan/redis-cluster/7006/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7006/data:/data --restart=always --name=redis-7006 redis:5.0 redis-server /etc/redis/redis.conf

 

192.168.88.4上运行:

docker run -itd --net=host -v /home/wangyan/redis-cluster/7002/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7002/data:/data --restart=always --name=redis-7002 redis:5.0 redis-server /etc/redis/redis.conf
docker run -itd --net=host -v /home/wangyan/redis-cluster/7004/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7004/data:/data --restart=always --name=redis-7004 redis:5.0 redis-server /etc/redis/redis.conf

 

192.168.88.5上运行:

docker run -itd --net=host -v /home/wangyan/redis-cluster/7003/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7003/data:/data --restart=always --name=redis-7003 redis:5.0 redis-server /etc/redis/redis.conf
docker run -itd --net=host -v /home/wangyan/redis-cluster/7005/conf/redis.conf:/etc/redis/redis.conf -v /home/wangyan/redis-cluster/7005/data:/data --restart=always --name=redis-7005 redis:5.0 redis-server /etc/redis/redis.conf

6.初始化redis集群

进入任意一个容器

docker exec -it redis-7001 /bin/bash

执行创建集群命令

redis-cli -a 123456 --cluster create 192.168.88.3:7001 192.168.88.4:7002 192.168.88.5:7003 192.168.88.4:7004 192.168.88.5:7005 192.168.88.3:7006 --cluster-replicas 1

 

至此,redis集群搭建完成!

你可能感兴趣的:(docker)