分布式缓存基本知识点


分布式缓存首先是缓存,一种性能很好但是相对稀缺的资源。它的使用主要意义在于服务更多的用户,即解决高并发的问题,下面将围绕分布式缓存如何解决高并发问题来进行详细的理解。

分布式缓存之Redis

分布式缓存

Redis集群是最常见的分布式缓存策略,它在高并发的场景下往往是采用多个Redis节点来分担服务器的压力,相应的也存在多种组建集群的方式:主从复制、哨兵模式、Redis-Cluster集群在实际应用 Redis 时,随着用户或业务规模的扩展,保存大量数据的情况通常是无法避免的,在实际应用时,往往采用Redis-Cluster+切片集群的方式来解决高并发问题。

切片集群

基础切片

切片集群,也叫分片集群,就是指启动多个 Redis 实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。在存取数据时按照切片规则将数据存入到相应的Redis节点,例如:对于一条数据,计算其key的哈希码,对3取余,得到[0,1,2]三种结果之一,然后存入相应的Redis节点,这样可以做到数据的均匀分布。
切片集群

hash环

上述简单切片规则随可以是数据均匀分布在Redis节点上,但存在一个扩展问题,当我们想要在集群种添加Redis节点时,需要将所有的数据进行迁移,这在大数据量的情况下是非常不方便的。因此介绍另一种切片规则 hash环切片
hash环hash环切片,首先建立一个足够大的hash环(2^32),采用 ip+Redis节点编号 的方式计算Redis节点在hash环上的位置,在存取数据时计算key的hash码,并对2^32取余,得到该条数据在hash环的位置,然后顺时针寻找Redis节点进行存取。

hash环进阶

看到这里大家应该也看出来了,普通的hash环切片的方式仍旧存在一个问题,那就是数据倾斜的问题,例如两个Redis节点相邻,导致大部分数据存入其中一个节点,这会导致我们的切片失去本身存在的意义,因此需要加以改进。
hash环怎么改进呢,那就是将Redis服务器虚拟成多个点,使其较为均匀的分布在环上,来减少数据倾斜的问题。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值