Redis集群搭建
一、Reids集群
1.因为单个节点的Redis的存储容量是有限的,所以我们可以进行水平扩展,成为一个多主多从的集群,同属也增加容错性
2.就是我们设置了哨兵模式后,容错会比较低,举个例子:当我们的主节点写入了新的数据,在将数据同步给slave的时候突然宕机了,然后从节点就没有接收到主节点传来的新数据,当宕机的主节点恢复后,他就会变成从节点,而他在宕机前没有将数据同步给slave(他宕机后slave就会变成主节点),而当她恢复后主节点同步给他的数据没有那个新增的数据,导致数据丢失
3.下面是进行了横向扩展:三主三从,他们每个主节点下面都挂载着一个slave,当master挂了之后slave便会变成master,并且每个节点之前都会来接相互之间的关系,角色和位置,通过ping,这些关系我们都会配置到配置文件中,下面会进行讲解,客户端需要和我们的集群进行沟通的话,直接连接其中一个节点就可以了
4.当一个节点宕机了,其他的节点就会判断他是够真的宕机了,当两个节点都判断他是宕机了,便会客观下线,进行主从切换,和哨兵机制一致
二、搭建集群
1.在redis.conf 配置文件配置以下内容
# 开启集群模式
cluster-enabled yes
# 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有
节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis本身
进行进行管理和维护
cluster-config-file nodes-6379.conf
# 超时时间,超时则认为master宕机,随后主备切换
cluster-node-timeout 15000
# 开启AOF
appendonly no
注意:进入对应存储.rdb、.aof的目录下讲这些文件删除,因为这些文件是我们单节点使用时创建的,如果不删除的话,在构建集群的时候会报错
2.之后使用命令重启redis之后,使用下面的命令查看redis的进程,会发现redis-server的身份是cluster,证明我们已经配置成功了,之后的其他集群节点如法炮制即可
ps -ef | grep redis
3.使用命名构建集群,之后使用下面的命令进行构建集群
redis-cli -a <redis密码> --cluster create <集群IP> --cluster-replicas 1
构建成功,创建了一个三主三从的关系,
205分配给201
206分配给202
204分配给203
之后使用下面的命令查看某个集群节点的信息
redis-cli -a <redis密码> --cluster check <集群IP>
slots槽节点介绍
1.当我们集群构建成功后会有16384个节点进行分配
2、有截图可以确认这个槽节点会平均分配给Master,然后我们的数据有事存储在槽节点中
3.如果我们进行数据的存储,他会根据key值和16384来进行取模会获得一个数据,比如说获得的数据是1000.则他就会存储在master 1 中
4.举例说明:每个数据就好像是房客,而对应的槽点就是房间,房客会住进对应的房间内,如果这个房间不能住了即主节点宕机,我们便会给他换到一个环境完全相同的地方,即主从切换,即1栋停电了,我们会将客户搬到4栋,栋1栋恢复了之后,又会从新搬回4栋,slot槽也是遵循一致性hash原则
5.登录集群查看,使用下面的命令。登录进行后可以使用第二个命令查看对应集群信息,有集群状态,集群数量等
1.redis-cli -c -a <redis密码> -h <集群端口号> -p 6379
2.cluster info