1.docker 拉取 redis 镜像
访问 Redis 镜像库地址: https://hub.docker.com/_/redis?tab=tags
我学习用,才用的是最新版本(实际生产环境建议采用稍前的版本,这样一定程度上保证可靠性)
命令:
$ docker pull redis:latest
2. 创建 Redis 容器
redis的主从集群,主必须是3以上的单数(为了容错投票,感兴趣的可以自行了解 Redis-cluster投票 )
创建 6 个Redis 容器:
- redis-node1:6379
- redis-node2:6380
- redis-node3:6381
- redis-node4:6382
- redis-node5:6383
- redis-node6:6384
执行命令如下:
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379
docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380
docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
docker create --name redis-node4 --net host -v /data/redis-data/node4:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382
docker create --name redis-node5 --net host -v /data/redis-data/node5:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383
docker create --name redis-node6 --net host -v /data/redis-data/node6:/data redis:latest --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384
参数解释:
--name redis-node1 该redis实例命名为 redis-node1
--net host 基于host模式创建 这样可以是不在同一台服务器的项目也可以访问redis容器
--cluster-enabled:是否启动集群,选值:yes 默认为no
--cluster-config-file 配置文件.conf :指定节点信息,自动生成
--appendonly:是否开启持久化
--cluster-node-timeout 毫秒值: 配置节点连接超时时间
效果截图:
3、启动 Redis 容器
执行命令如下:
docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6
效果截图:
确认是否启动(有时候即使如上图所示也未必启动,必须通过docker ps确认)
4.配置集群
进入任意一个 Redis 实例:
执行组件集群的命令:
redis-cli --cluster create 172.30.120.242:6379 172.30.120.242:6380 172.30.120.242:6381 172.30.120.242:6382 172.30.120.242:6383 172.30.120.242:6384 --cluster-replicas 1
这里的参数 --cluster-replicas 1 代表一主一从 前三个为主,后三个为从,但是主从的对应关系和顺序无关。
如果是--cluster-replicas 2 表示 一主二从(这里不会生效,因为6个实例一主二从意味着只有两个主,这样不行,主redis的数量必须是3个以上的单数)
执行截图:
配置完之后查看一下集群节点信息:
使用命令:
/data# redis-cli -c
127.0.0.1:6379> cluster nodes
可以看到主从设置和槽位分配信息
5.试用一下
ok,配置完成了!