十、redis 集群

一、呼唤集群

这里写图片描述

这里写图片描述

二、数据分布

这里写图片描述

三、手动配置redis cluster

###3.1 集群配置###

//关于集群的一些配置

//开启集群
 cluster-enabled yes
 
//集群超时,超过就认为有问题
 cluster-node-timeout 15000

//是不是所有的节点都正常,redis才能正常用(肯定设置no)
 cluster-require-full-coverage no

//给集群指定一个输出的配置文件
 cluster-config-file nodes-8001.conf
[root@docker1 src]# redis-server conf/redis-8000.conf 
[root@docker1 src]# redis-server conf/redis-8001.conf 
[root@docker1 src]# redis-server conf/redis-8002.conf 
[root@docker1 src]# redis-server conf/redis-8003.conf 
[root@docker1 src]# redis-server conf/redis-8004.conf 
[root@docker1 src]# redis-server conf/redis-8005.conf 

我开启了6个节点
这里写图片描述
这里面每个redis后面都会带有[cluster]标志

###3.2 节点meet###
这里写图片描述

利用 cluster nodes查看

这里写图片描述
在8000中确实识别到了其他5个节点

3.3设置主从###

  • 8003从 8000主
  • 8004从 8001主
  • 8005从 8002主
    这里写图片描述

查看节点信息
这里写图片描述
确实已经3主3从

3.4分配slot###

这里写图片描述

查看分配的具体信息
这里写图片描述

3.5 运行结果###

要使用过 -c命令

这里写图片描述

四、ruby 配置redis cluster

ruby的安装不详细介绍了。
这次还是准备三主三从。 9001 9002 9003 9004 9004 9006
其中master 9001、9002、9003
slave 9004 9005 9006

$ redis-trib.rb create --replicas 1 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003  127.0.0.1:9004  127.0.0.1:9005  127.0.0.1:9006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:9001
127.0.0.1:9002
127.0.0.1:9003
Adding replica 127.0.0.1:9004 to 127.0.0.1:9001
Adding replica 127.0.0.1:9005 to 127.0.0.1:9002
Adding replica 127.0.0.1:9006 to 127.0.0.1:9003
......
   replicates 7bda0805a4172de778f1a7d30a5c9d851c563812
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

后续我会详细分析ruby

五、ruby集群伸缩

5.1、扩容集群
这里写图片描述
利用手动创建集群是最好理解的,加入集群就是meet、迁移槽和数据就分时分配slot。
这里写图片描述

加入主节点

//127.0.0.1:9007新加入的ip和端口
//127.0.0.1:9001是新节点需要meet的旧的节点(集群随便一个都行)
redis-trib.rb add-node 127.0.0.1:9007 127.0.0.1:9001 

加入从节点

//将9008从属于9007
//f061c751771d042364cc926f3deab4e598bb70f9  是9007的节点id
redis-trib.rb add-node  --slave --master-id f061c751771d042364cc926f3deab4e598bb70f9 127.0.0.1:9008 127.0.0.1:9007

分配槽和迁移数据
这里写图片描述

redis-trib.rb reshard 127.0.0.1:9001

How many slots do you want to move (from 1 to 16384)? 4096

What is the receiving node ID? f061c751771d042364cc926f3deab4e598bb70f9

Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:all

//这样就完成了。

五、集群一致性Hash

写的一篇不错的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值