系统环境:
操作系统centos 7.2
Jdk:1.8
Yum源:阿里yum源镜像配置
3台服务器,每台服务器配置两个节点,每个服务器上的两个节点的端口分别为6379,6380,配置3主3从
Docker 版本 18.09.0
Redis版本:5.0.3
1、安装redis镜像
这里安装官网的就行
docker pull redis
2、redis配置
2.1、创建配置文件
文件参数:
port ${PORT}
protected-mode no
# masterauth 123456
# requirepass 123456 (当服务配置完成后可放开 并重启容器即可)
#aof持久化
appendonly yes
appendfilename appendonly.aof
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 80-100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
#cluster配置
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} (redis默认的总线程端口 端口+10000)
appendonly yes
docker network create redis-net
2、启动集群容器
1 )
docker run -d -ti -p 6379:6379 -p 16379:16379 \
-v /opt/docker-volume/redis-cluster/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /opt/docker-volume/redis-cluster/6379/data:/data \
--restart always --name redis-6379 --net redis-net \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf
2 )
docker run -d -ti -p 6380:6380 -p 16380:16380 \
-v /opt/docker-volume/redis-cluster/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /opt/docker-volume/redis-cluster/6380/data:/data \
--restart always --name redis-6380 --net redis-net \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf
3、使用redis-cli创建redis集群
3.1、进入其中一个容器
docker exec -it redis-6379 bash
3.2、分配redis主备
redis-cli --cluster create 192.168.10.1:6379 192.168.10.2:6379 192.168.10.3:6379 192.168.10.1:6380 192.168.10.2:6379 192.168.10.3:6380 --cluster-replicas 1
自动进行redis分片之后,
注:若分配时一直卡在上图红框的位置,有以下几种办法
1.去其他服务中执行 cluster meet ip port 命令
2.总线端口没有对外开放,开放下即可