redis提供了无中心化的模式来提供对key的shading, 提供数据存储的master节点与master节点之间是对等的, master节点与master节点之间通过gossip协议进行通信,以实现集群选主,失效转移, 触发数据迁移等操作.
1. redis 集群搭建
1.1 配置项说明
- cluster-enabled
<yes/no>
: 是否开启集群模式, yes开启, no不开启.
- cluster-config-file
<filename>: 集群配置文件,用于集群信息,用户不能编辑或改变该文件.
cluster-node-timeout
<milliseconds>: 检测集群中master节点失败最大时间,当master节点超过该时间还无法联系时, 如果有备份节点则备份节点将对maser节点进行失效转移,若干没有则表示该master节点失效, 当集群中大多数master节点失效时,集群将不再提供操作.
cluster-slave-validity-factor
<factor>
:master节点检测到超时时最大连接重试次数, 默认为0, 即一旦检测到超时则slave节点就对master进行失效转移, 当该值为正数时, 在factor*timeout的时间周期内, slave不会对master进行失效转移.
cluster-migration-barrier
<count>
: master节点保存连接的最小slave节点数.
cluster-require-full-coverage
<yes/no>
:当主节点失效时是否继续提供服务, 默认yes, 即主节点失效时将不提供服务, no, 失效时仍然提供服务.
1.2 集群搭建
下面将搭建3主3从的集群, 主节点端口分别为7000, 7001, 70002, 从节点端口为7003, 7004, 7005.即一个master节点对应一个slave节点.
创建配置文件如下:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
创建6个文件夹, 文件夹名为端口名, 并将配置文件拷贝到各文件夹,端口修改为对应端
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
将redis-server执行程序拷贝到文件夹,并启动