requirepass 123456
注释掉 # bind 127.0.0.1
daemiomze no
将daemonize yes注释起来或者daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
appendonly yes
docker run -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
docker exec -it myredis /bin/bash
redis-cli进入操作界面
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
进入容器:
docker exec -it redis-node-1 /bin/bash
(127.0.0.1)主机ip
redis-cli --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6385 127.0.0.1:6384 127.0.0.1:6386 --cluster-replicas 1
(172.17.48.78)主机ip不行
redis-cli --cluster create 172.17.48.78:6381 172.17.48.78:6382 172.17.48.78:6383 172.17.48.78:6384 172.17.48.78:6385 172.17.48.78:6386 --cluster-replicas 1
–cluster-replicas 1 为每一个master创建一个slave结点
进入界面
redis-cli -p 6381
查询info
cluster info
cluster nodes
检查数据
redis-cli --cluster check 127.0.0.1:6381
停止redis-node-1发现,从结点变为主结点
重新启动redis-node-1,变为从结点
docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
进入7号机
docker exec -it redis-node-7 bash
加入集群
redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6381
查看加入情况
redis-cli --cluster check 127.0.0.1:6381
没有分配槽位
重新分配槽号
redis-cli --cluster reshard 127.0.0.1:6381
16384/4 = 4096
槽位会将之前的分别分给新的结点
增加从机
redis-cli --cluster add-node 127.0.0.1:6388 127.0.0.1:6387 --cluster-slave --cluster-master-id 2973761cb8b5af591c4601c715aa98022ffabacb
2973761cb8b5af591c4601c715aa98022ffabacb是主机6387的编号
redis-cli --cluster check 127.0.0.1:6381
先去出从结点的6388
redis-cli --cluster del-node 127.0.0.1:6388 dc2a65d1a3a20f56a781c1f51930333b71dd5684
重新分配槽位
redis-cli --cluster reshard 127.0.0.1:6381
从集群中删除
redis-cli --cluster del-node 127.0.0.1:6387 2973761cb8b5af591c4601c715aa98022ffabacb