geeCache 一致性hash

目标:解决当自身结点没有改缓存时,从哪个结点获得这个缓存的问题

一、普通的hash算法

hash('Tom')%结点数量

缺点:缓存雪崩

缓存雪崩是指在某一时刻,大量缓存同时失效或宕机,导致大量请求直接访问数据库,从而对数据库造成巨大压力,甚至可能导致数据库崩溃、系统不可用的情况。

当结点数量变化,每一个Key对应的结点都会发生变化,而变化后的结点没有存放该缓存,又需要通过访问数据库获得,造成缓存雪崩。

二、一致性hash

一致性哈希算法是一种在分布式系统中广泛使用的哈希算法,它主要用于解决在动态变化的网络环境中数据的分发和节点的负载均衡问题。

一致性哈希算法将整个哈希值空间映射成一个虚拟的圆环,这个圆环的范围是0到2^32−1。这个圆环被称为哈希环。

在分布式系统中的节点(例如缓存服务器、数据库节点等)通过哈希函数计算其在哈希环上的位置。通常使用节点的唯一标识(如IP地址或名称)作为关键字进行哈希,确定每台机器在哈希环上的位置。

当需要定位一个数据时,首先通过哈希函数计算数据的哈希值,然后沿着哈希环顺时针找到第一个大于等于该哈希值的节点位置,即为数据所在的节点。这个过程称为数据的路由或查找。

负载均衡:建立多个虚拟节点,通过map存放虚拟节点hash值和真实结点名称的对应关系

构造函数:

添加结点

虚拟节点hash:编号加名称

获得对应的Key需要查找的结点名称

相关推荐
y1su1 分钟前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
residual_fan31 分钟前
船用柴油机动态机动工况故障诊断:控制感知仿射网络(CAAN)的技术实现
人工智能·算法·数据挖掘·数据分析
其实防守也摸鱼1 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
蓝悦无人机1 小时前
《Planning algorithms》读书笔记——第8章 反馈运动规划
算法·读书笔记·反馈运动规划
RaaS1002 小时前
Agent Skills 进了 Linux Foundation:2.8 亿次安装,但装 skill 还没有安全规范
人工智能·算法·架构
CV爱数码2 小时前
CT 重建从零开始(五):ASTRA Toolbox 上手——几何、投影器与算法
图像处理·算法·计算机视觉·ct
TunerT_TQ2 小时前
超立方体Ramsey(openai/math 家族171)H11攻坚日志|D60–D69:Star分组重数、二幂坐标群、奇偶入射语义与Site‑Level候选计数形式化闭环
算法
Rabitebla2 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
远离UE42 小时前
半拉格朗日学习笔记 动力学 实时渲染
人工智能·算法
小郎君6583 小时前
MPTT 不是万能编号:一棵百万节点树的增删改与批量事务
算法