环境:
centos7
redis:7.0.5 三主三从,六个节点
一、下载redis镜像
docker pull redis:7.0.5
二、创建虚拟网卡
docker network create redis-cluster
# 查看创建的Docker网卡
docker network ls
网卡类型为bridge桥接类型
三、准备redis配置文件 redis.conf
port ${port}
requirepass 123456
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 服务器ip地址
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
配置解释:
port
:节点端口;requirepass
:设置密码,访问时需要验证protected-mode
:保护模式,默认值 yes,即开启。开启保护模式以后,需配置bind ip
或者设置访问密码;关闭保护模式,外部网络可以直接访问;daemonize
:是否以守护线程的方式启动(后台启动),默认 no;appendonly
:是否开启 AOF 持久化模式,默认 no;cluster-enabled
:是否开启集群模式,默认 no;cluster-config-file
:集群节点信息文件;cluster-node-timeout
:集群节点连接超时时间;cluster-announce-ip
:集群节点 IP注意:
如果你想要你的redis集群可以供外网访问,这里直接填 服务器的IP 地址即可- 如若为了安全,只是在服务器内部进行访问,这里还需要做一些修改。
cluster-announce-port
:集群节点映射端口;cluster-announce-bus-port
:集群节点总线端口。- 注意,关于Redis Cluster 集群官网两个TCP端口的说明:
将确认端口和服务器ip地址的配置文件放入/home/redis/node-${port}/conf/redis.conf。
例如:
port 6381
requirepass 123456
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.56.101
cluster-announce-port 6381
cluster-announce-bus-port 16381
四、配置/etc/sysctl.conf
vi /etc/sysctl.conf
在最后一行添加如下配置:
net.core.somaxconn = 1024
vm.overcommit_memory=1
保存后输入:sysctl -p 使配置立即生效。
五、启动容器
docker run -it -d -p ${port}:${port} -p 1${port}:1${port}
\--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf
\--privileged=true -v /home/redis/node-${port}/data:/data
\--restart always --name redis-${port} --sysctl net.core.somaxconn=511 --net redis-cluster
\redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf
例如:docker run -it -d -p 6379:6379 -p 16379:16379 --privileged=true -v /home/redis/node-6379/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -v /home/redis/node-6379/data:/data --restart always --name redis-6379 --sysctl net.core.somaxconn=511 --net redis-cluster redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf
六、 创建Redis Cluster集群
随意进入一个redis节点:
docker exec -it redis-6379 /bin/bash
进入redis 6379节点之后执行如下命令:
redis-cli -a 之前设置的密码 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384 --cluster-replicas 1
例如:
redis-cli -a 123456 --cluster create 192.168.56.101:6379 192.168.56.101:6380 192.168.56.101:6381 192.168.56.101:6382 192.168.56.101:6383 192.168.56.101:6384 --cluster-replicas 1
出现下图所示表示创建成功: