分布式的memcache理解要点

本文介绍了分布式memcache的重要概念,包括分布式体现、集群架构中的雪崩效应及其应对策略——一致哈希算法。通过一致性哈希,可以减少服务器增减对缓存路由的影响,防止高并发下的雪崩效应。此外,文中还提及了分布式session的应用场景。
摘要由CSDN通过智能技术生成

本文整理分布式的memcache的几个关键要点:

  • 1、分布式体现;
  • 2、集群架构;
  • 3、雪崩效应及应对策略;
  • 4、应用场景。

分布式体现

memcache本身并非是一种分布式的缓存系统,它的分布式是由访问它的客户端来实现的。

一种比较简单的实现方式是依据缓存的key进行hash,当后端有N个memcache服务器时,访问的服务器为hash(key)%N。

集群架构

在这里插入图片描述

雪崩效应及应对策略

仔细观察上述的memcache定位算法-hash(key)%N,发现会存在一个严重的漏洞,即若一台缓存服务器down机,其N值将会发生变化,导致原来的key值定位的缓存服务器将会产生变化,大部分key将会重新分布。在高并发场景下可能会带来灾难,因为缓存中均不能命中key,流量洪峰将会转移至后端数据库服务器,而数据库服务器的不可用,将会导致整个应用不可用,形成所谓的“雪崩效应”。

为了解决这个问题,首先需要明确短板在哪里,很明显在定位算法-hash(key)%N这个上面,只要N一变,定位缓存服务器都将会变化。为了使得分布式的缓存系统更加可靠,就需要尽可能降低N的变化带来的路由变化。因此1997年consistent hash算法被提出来了,其核心就是将hash函数的值域空间组成一个圆环,整个空间按照顺时针组织,缓存服务器是这个圆环上的节点,相邻的两个节点间的值域区间都将命中到下一个节点。示意图如下:
在这里插入图片描述

consistent hash算法的微妙之处在于,不论缓存服务新增或下线,其影响的范围都控制在变更Node与它之前的Node间的那段区域,不会影响全局。

应用场景

典型的应用场景即基于缓存的分布式session构架。
在这里插入图片描述

备注

文中的图片是通过OmniGraffle软件绘制,如果需要文中原图的话,留言即可。

OmniGraffle是Mac平台上的一款绘图工具,请移步Mac流程图工具OmniGraffle介绍-https://blog.csdn.net/loongshawn/article/details/52282547了解,早些时候可以以优惠价购买授权,目前渠道已经被封了,因此不想花钱的话,只能使用破解版本。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值