1、修改redis的配置文件
port 6379
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
增加如上所示配置,给每个redis节点设置不同的端口号,复制并创建6个配置文件。因为docker是以host模式启动,所以要防止端口冲突。
2、启动容器
docker run -v /root/docker/redis/cluster/redis1.conf:/usr/local/etc/redis/redis.conf --name redis1 --net=host -d redis redis-server /usr/local/etc/redis/redis.conf
这里挂载了redis的配置文件,并且以host网络模式启动容器,给每个容器挂载不同的配置文件,以此类推,共启动6个容器。
3、进入其中一个容器内部,执行如下命令
redis-cli --cluster create 192.168.182.128:6379 192.168.182.128:6380 192.168.182.128:6381 192.168.182.128:6382 192.168.182.128:6383 192.168.182.128:6384 --cluster-replicas 1
搭建集群,其中192.168.182.128是宿主机的ip地址。
4、在容器内部执行
redis-cli -c
命令,以集群模式连接redis,执行cluster info和cluster nodes查看集群信息。使用set命令添加键值对,会通过计算插槽来确定要添加到哪一个redis节点,如下所示
127.0.0.1:6379> set k1 v1
-> Redirected to slot [12706] located at 192.168.182.128:6381
OK
192.168.182.128:6381> get k1
"v1"