(七)redis的集群:主从复制、CAP、PAXOS、cluster分片集群02

16 篇文章 2 订阅

spring.io PROJECTS SPRING DATA
自学不用买书,看官方文档。
Spring dATA Redis learn reference Doc
所有Spring 对Rrdis做的事。

一,容量问题怎么解决?

X轴,HA,主从复制,没有解决容量问题
从客户端

1 业务拆分

在这里插入图片描述

2 hash+取模

弊端:取值的数必须固定
%3 %4
影响分布式下的扩展性
在这里插入图片描述

3 random

消息队列:一个往redis里扔lpush,一个从redis取rpop,消费的模式。
在这里插入图片描述

4 一致性哈希算法(更适合作为缓存使用)

在这里插入图片描述

映射算法:hash,crc16,crc32,fnv,md5
没有取模,使用的是哈希环

0开始到2的32次方,有无数个虚拟的点。
准备一个算法,按照物理机的节点数分片。
新增一个节点,不影响节点以后的数据。

优点:加节点,可以分担其他节点的压力,不会造成全局洗牌。
缺点:新增节点会造成一小部分数据不能命中。
1,问题:会出现击穿,压力到了数据库
2,方案:没的话,去取离我最近的2个物理节点

数据倾斜
可以通过设备地址拼接10个数字,使两个节点平均分配再20个节点中

2,3,4的弊端

redis的连接成本问题(3握手4分手),对server压力很大
在这里插入图片描述
怎么解决?nginx反向代理服务,自己不参与,把连接分散。
LVS:对于客户端透明,客户端的代码成本量,VIP不管后面有多少,对外只有一个路径,无需发现中心,去查看后面有几个服务
keepalived
1,监控节点的状态,转发到存活的机器上
2,主备切换
3,换主

无状态:只有无状态才能一变多
代理的三种:
tw
predixy
cluster

codis (修改了redis的源代码)豌豆荚的团队
在这里插入图片描述

github
twitter
twemproxy

以上,一致性哈希最好,但也只能做缓存,不能做数据库使用。

预分区

迁移成本降低
取模是10,范围是0 … 9,
添加mapping,设置每个阶段的槽位数据,假设一开始是两台redis,各领5个槽位。未来新加一个阶段,只需要让之前的两个阶段让出一部分槽位。不需要全部伪哈希一遍(所有的key全部取出来,全算一遍哈希,然后按照哈希分区,删除和新增),直接移动完部分槽位的数据(减少计算和删除的操作)。
只要槽位够大,可以无限添加节点。(redis集群有16384个槽位,使用CRC16算法校验决定放到那个槽位)。使用redis命令迁移数据。
在这里插入图片描述

迁移过程中,数据能不能修改?

做主从的时候,Master-slave,
先给时点数据,在给缓冲的数据,数据追平。RDB和增量日志的概念。

无主模型 Cluster 模式

算法和别人有什么槽位。
hash%10,算出槽位,和mapping对比,返回给客户端,重定向的位置。

在这里插入图片描述

数据分治-聚合/事务操作很难实现

计算向数据移动,最大的本质是快,影响性能的功能都去掉了,为了保证高性能。
但是给了处理方案:
数据一旦被分开就很难被整合使用。
hash tag
{00}k1
{00}k2
用{00}取模,通过key让数据落到同一台redis上,可以进行聚合和事务操作。

twemproxy

twemproxy安装和小结

Predixy

Predixy安装和小结

redis 自身的集群

https://blog.csdn.net/qq_39308071/article/details/119087156

对比

twemproxyPredixyRedis Cluster
高可用一致性哈希Redis Sentinel或Redis ClusterRedis Sentinel或Redis Cluster
事务不支持Redis Sentinel模式单Redis组下支持支持
多机房支持不支持支持,可定义丰富规则调度流量支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值