客户端
docker run -it -p 6379:6379 -d -m 125m --restart always --name redis-client redis:5.0.9创建脚本
vim /opt/redis/redisClient.sh ## 内容 docker exec -it redis-client redis-cli -h [redisIP] -p [redis端口] -a [认证密码,没有就不需要] ## 例如 docker exec -it redis-client redis-cli -h 172.16.46.213 -p 16379 -a mscmredis docker exec -it redis-client redis-cli -h 172.16.46.213 -p 16379 -a mscmredis -c docker exec -it redis-client redis-cli -h 172.16.46.214 -p 16377 -a mscmredis -c docker exec -it redis-client redis-cli -h 172.16.46.214 -p 16379 -a mscmredis -c docker exec -it redis-client redis-cli -h 172.16.46.213 -p 16377 -a mscmredis -c docker exec -it redis-client redis-cli -h 172.16.46.213 -p 16378 -a mscmredis -c docker exec -it redis-client redis-cli -h 172.16.46.214 -p 16378 -a mscmredis -c给脚本执行权限
chmod a+x /opt/redis/redisClient.sh配置文件需要在213 214两台主机上配置 redis_16377.conf redis_16378.conf redis_16379.conf,不同点端口和IP
https://www.cnblogs.com/zhoujinyi/p/11606935.html
redis-cli --cluster help Cluster Manager Commands: create host1:port1 ... hostN:portN #创建集群 --cluster-replicas <arg> #从节点个数 check host:port #检查集群 --cluster-search-multiple-owners #检查是否有槽同时被分配给了多个节点 info host:port #查看集群状态 fix host:port #修复集群 --cluster-search-multiple-owners #修复槽的重复分配问题 reshard host:port #指定集群的任意一节点进行迁移slot,重新分slots --cluster-from <arg> #需要从哪些源节点上迁移slot,可从多个源节点完成迁移,以逗号隔开,传递的是节点的node id,还可以直接传递--from all,这样源节点就是集群的所有节点,不传递该参数的话,则会在迁移过程中提示用户输入 --cluster-to <arg> #slot需要迁移的目的节点的node id,目的节点只能填写一个,不传递该参数的话,则会在迁移过程中提示用户输入 --cluster-slots <arg> #需要迁移的slot数量,不传递该参数的话,则会在迁移过程中提示用户输入。 --cluster-yes #指定迁移时的确认输入 --cluster-timeout <arg> #设置migrate命令的超时时间 --cluster-pipeline <arg> #定义cluster getkeysinslot命令一次取出的key数量,不传的话使用默认值为10 --cluster-replace #是否直接replace到目标节点 rebalance host:port #指定集群的任意一节点进行平衡集群节点slot数量 --cluster-weight <node1=w1...nodeN=wN> #指定集群节点的权重 --cluster-use-empty-masters #设置可以让没有分配slot的主节点参与,默认不允许 --cluster-timeout <arg> #设置migrate命令的超时时间 --cluster-simulate #模拟rebalance操作,不会真正执行迁移操作 --cluster-pipeline <arg> #定义cluster getkeysinslot命令一次取出的key数量,默认值为10 --cluster-threshold <arg> #迁移的slot阈值超过threshold,执行rebalance操作 --cluster-replace #是否直接replace到目标节点 add-node new_host:new_port existing_host:existing_port #添加节点,把新节点加入到指定的集群,默认添加主节点 --cluster-slave #新节点作为从节点,默认随机一个主节点 --cluster-master-id <arg> #给新节点指定主节点 del-node host:port node_id #删除给定的一个节点,成功后关闭该节点服务 call host:port command arg arg .. arg #在集群的所有节点执行相关命令 set-timeout host:port milliseconds #设置cluster-node-timeout import host:port #将外部redis数据导入集群 --cluster-from <arg> #将指定实例的数据导入到集群 --cluster-copy #migrate时指定copy --cluster-replace #migrate时指定replace help For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.**注意:Redis Cluster最低要求是3个主节点,如果需要集群需要认证,则在最后加入-a xx即可. **
1.创建集群主节点 redis-cli --cluster create 172.16.46.214:16379 172.16.46.214:16378 172.16.46.214:16377 2.创建集群主从节点 redis-cli -a mscmredis --cluster create 172.16.46.213:16379 172.16.46.213:16378 172.16.46.213:16377 172.16.46.214:16379 172.16.46.214:16378 172.16.46.214:16377 --cluster-replicas 1 说明:–cluster-replicas 参数为数字,1表示每个主节点需要1个从节点。
通过该方式创建的带有从节点的机器不能够自己手动指定主节点,所以如果需要指定的话,需要自己手动指定,先使用①或③创建好主节点后,再通过④来处理
3.添加集群主节点 redis-cli --cluster add-node 192.168.163.132:6382 192.168.163.132:6379 说明:为一个指定集群添加节点,需要先连到该集群的任意一个节点IP(192.168.163.132:6379),再把新节点加入。该2个参数的顺序有要求:新加入的节点放前
4.添加集群从节点 redis-cli --cluster add-node 192.168.163.132:6382 192.168.163.132:6379 --cluster-slave --cluster-master-id 117457eab5071954faab5e81c3170600d5192270 说明:把6382节点加入到6379节点的集群中,并且当做node_id为 117457eab5071954faab5e81c3170600d5192270 的从节点。如果不指定 --cluster-master-id会随机分配到任意一个主节点。
5.删除节点 redis-cli --cluster del-node 192.168.163.132:6384 f6a6957421b80409106cb36be3c7ba41f3b603ff