高可用redis集群搭建

在web项目里出现高并发时,可以通过负载均衡来处理,redis的插槽分配机制就是一个负载均衡的模式。

Redis集群节点复制介绍

(1)Redis集群的每个节点都有两种角色可选:主节点master node、从节点slave node。其中主节点用于存储数据,而从节点则是某个主节点的复制品。
(2)当用户需要处理更多读请求的时候,添加从节点可以扩展系统的读性能,因为Redis集群重用了单机Redis复制特性的代码,所以集群的复制行为和单机复制特性的行为是完全一样的。

Redis集群故障转移介绍

(1)Redis集群的主节点内置了类似Redis Sentinel的节点故障检测和自动故障转移功能,当集群中的某个master节点下线时,集群中的其他在线master节点会注意到这一点,并对已下线的主节点进行故障转移
(2)集群进行故障转移的方法和Redis Sentinel进行故障转移的方法基本一样,不同的是,在集群里面,故障转移是由集群中其他在线的主节点负责进行的(而不是像sentinel那样提升slave为master),所以集群不必另外使用Redis Sentinel
(3)故障转移过程:当超过半数的持有槽的master节点发送ping消息给B节点(也是master)但是都没收到B节点的pong反馈消息时,B客观下线,那么B节点的所有slave节点立即被触发故障转移,通过选举机制后,其中一个slave节点变为master角色,然后会把B节点负责的槽(slot)委派给自己,再向整个集群广播自己的pong消息,通知所有节点自己变为master节点。

redis 插槽分配机制简介

在redis官方给出的集群方案中,数据的分配是按照槽位来进行分配的,每一个数据的键被哈希函数映射到一个槽位,redis-3.0.0开始一共有16384个槽位,当然这个可以根据用户的喜好进行配置。当用户put或者是get一个数据的时候,首先会查找这个数据对应的槽位是多少,然后查找对应的节点,然后才把数据放入这个节点。这样就做到了把数据均匀的分配到集群中的每一个节点上,从而做到了每一个节点的负载均衡,充分利用集群。
master节点互联

Redis集群搭建

redis集群由多个Redis服务器组成,是一个分布式网络服务集群。
每一个Redis服务器称为节点Node,节点之间会互相通信,两两相连。
Redis集群无中心节点。

搭建流程概要——
创建多个主节点,为每一个节点指派slot,将多个节点连接起来,组成一个集群。槽位分配完成后,集群进入上线状态。
6个节点:3个主节点,每一个主节点有一个从节点。
Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。
我这里以redis3.0为例演示搭建集群,对搭建过程的问题也做了记录,让读者少踩坑;也对搭建后的集群做了测试,以便观察redis集群如何自动将客户端的读、写请求分到不同的slot节点处理的。
集群规划表:
在这里插入图片描述
开始为3个节点(node1~node3)安装redis,准备redis运行环境
1、 下载redis3.0以及以上的tar包
http://download.redis.io/releases/
2、 解压 tar –zxf redis-3.0.0-tar.gz –C /bigdata/
3、 每个节点安装gcc 和tcl
yum install gcc tcl -y
4、 每个节点分别编译
make
5、 每个节点分别编译安装
查看README可知,可对生成的bin目录自定义位置:make install PREFIX=/bigdata/redis-3.0.0/
6、 将配置文件拷贝到安装目录的bin下面
cp /bigdata/redis-3.0.0/redis.conf /bigdata/redis3.0.0/bin/

按照上面的集群规划表,为3个节点准备总共6份安装目录:
node1: cd /bigdata/ && mv redis-3.0.0 redis6371 && cp -r redis6371 redis6381 && cp -r redis6371 redis6391

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值