黑马程序员技术交流社区
标题:
【郑州校区】品优购电商系统部署 Day 1 十二
[打印本页]
作者:
我是楠楠
时间:
2020-4-7 11:18
标题:
【郑州校区】品优购电商系统部署 Day 1 十二
【郑州校区】品优购电商系统部署 Day 1 十二
4.1 Redis-Cluster
简介
4.1.1
什么是
Redis-Cluster
为何要搭建
Redis
集群。
Redis
是在内存中保存数据的,而我们的电脑一般内存都不大,
这也就意味着
Redis
不适合存储大数据,适合存储大数据的是
Hadoop
生态系统的
Hbase
或
者是
MogoDB
。
Redis
更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备
协同合作,就可以让内存增大很多倍,这就需要用到集群。
Redis
集群搭建的方式有多种,例如使用客户端分片、
Twemproxy
、
Codis
等,但从
redis 3.0
之后版本支持
redis-cluster
集群,它是
Redis
官方提出的解决方案,
Redis-Cluster
采用无中心结构,每个节点保存数据和整个集群状态
,
每个节点都和其他所
有节点连接。其
redis-cluster
架构图如下:
1.png
(262.88 KB, 下载次数: 11)
下载附件
2020-4-7 11:16 上传
客户端与
redis
节点直连
,
不需要中间
proxy
层
.
客户端不需要连接集群所有节点连接
集群中任何一个可用节点即可。
所有的
redis
节点彼此互联
(
PING-PONG
机制
),
内部使用二进制协议优化传输速度和带
宽
4.1.2
分布存储机制
-
槽
(
1
)
redis-cluster
把所有的物理节点映射到
[0-16383]slot
上
,cluster
负责维护
node<->slot<->value
(
2
)
Redis
集群中内置了
16384
个哈希槽,当需要在
Redis
集群中放置一个
key-value
时,
redis
先对
key
使用
crc16
算法算出一个结果,然后把结果对
16384
求余数,这样每
个
key
都会对应一个编号在
0-16383
之间的哈希槽,
redis
会根据节点数量大致均等的将哈
希槽映射到不同的节点。
例如三个节点:槽分布的值如下:
SERVER1: 0-5460
SERVER2: 5461-10922
SERVER3: 10923-16383
4.1.3
容错机制
-
投票
(
1
)选举过程是集群中所有
master
参与
,
如果半数以上
master
节点与故障节点通信超过
(cluster-node-timeout),
认为该节点故障,自动触发故障转移操作
.
故障节点对应的从节点自
动升级为主节点
(
2
)什么时候整个集群不可用
(cluster_state:fail)?
如果集群任意
master
挂掉
,
且当前
master
没有
slave.
集群进入
fail
状态
,
也可以理解成集
群的
slot
映射
[0-16383]
不完成时进入
fail
状态
.
1.png
(349.9 KB, 下载次数: 4)
下载附件
2020-4-7 11:17 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2