写点什么

分布式缓存架构

用户头像
raox
关注
发布于: 2020 年 12 月 24 日

缓存的基本概念

缓存的关键指标

缓存命中率: 查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是 90%

相关名词

缓存对象生存时间( TTL - Time To Live ):对象缓存的时间越长, 缓存对象被重用的可能性就越高。

缓存雪崩:各级缓存失效,请求直接打到数据库

缓存预热:提前加载热数据至缓存

缓存穿透:持续高并发的请求某个不存在的数据。一个简单的对策是将不存在的数据也缓存起来(其 value 值为 null),并设 定一个较短的失效时间



关键算法

一致性 Hash 算法:在动态变化的Cache环境中,哈希算法应该满足的4个适应条件:均衡性(Balance),单调性(Monotonicity),分散性(Spread),负载(Load)。摘自知乎:https://zhuanlan.zhihu.com/p/98030096

数据映射



服务器的删除与添加:





影响因子

  • 缓存键集合大小

  • 缓存可使用内存空间

  • 缓存对象生存时间



评估算法的存储负载不均衡性

  1. 编写测试用例测试一致性 hash 算法,测试 100 万 KV 数据,10 个服务器节点的情况下,计算这些 KV 数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。

见raox的实现代码:

https://github.com/raoxisme/Frontend-06-Template/blob/main/Week%2009/test100wkv.js

前提:

npm install consistent-hashing
npm install mathjs

执行结果(1W):

std: 94.90814272524541

variance: 9007.555555555555

mean: 1000



发布于: 2020 年 12 月 24 日阅读数: 16
用户头像

raox

关注

还未添加个人签名 2019.02.11 加入

还未添加个人简介

评论

发布
暂无评论
分布式缓存架构