1、拉取 Redis 镜像
docker pull redis
2、创建挂载目录
mkdir -p /mnt/redis/{6381,6382,6383,6384,6385,6386}/data
3、创建容器
docker create --name redis-6381 --restart=always --net host \ -v /mnt/redis/6381/data:/data redis \ --requirepass 123456 \ --masterauth 123456 \ --port 6381 \ --appendonly yes \ --cluster-enabled yes \ --cluster-announce-ip 127.0.0.1
… …
docker create --name redis-6386 --restart=always --net host \ -v /mnt/redis/6386/data:/data redis \ --requirepass 123456 \ --masterauth 123456 \ --port 6386 \ --appendonly yes \ --cluster-enabled yes \ --cluster-announce-ip 127.0.0.1
- requirepass:外面服务、客户端来连接 redis 的密码
- masterauth:redis从去连接 redis 主使用的密码。这个意思是说,如果你在主上设置了requirepass 参数,你就需要再从上设置 masterauth 参数,并和主密码指定成一样的。这样从才能继续去同步主的数据
- appendonly:是否开启持久化
- cluster-announce-ip:对外提供访问的IP,如果集群机器不在局域网内的服务器需填写外网域名或IP
4、启动节点容器
docker start redis-6381 redis-6382 redis-6383 redis-6384 redis-6385 redis-6386
5、创建 Redis 集群
docker exec -it redis-6381 redis-cli -a 123456 --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1
- cluster-replicas:指定从节点的个数
6、测试
docker exec -it redis-6381 redis-cli -h 127.0.0.1 -p 6382 -a 123456 -c
- 集群信息
cluster info
- 集群节点
cluster nodes