分布式缓存架构
缓存的基本概念
缓存的关键指标
缓存命中率: 查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是 90%
相关名词
缓存对象生存时间( TTL - Time To Live ):对象缓存的时间越长, 缓存对象被重用的可能性就越高。
缓存雪崩:各级缓存失效,请求直接打到数据库
缓存预热:提前加载热数据至缓存
缓存穿透:持续高并发的请求某个不存在的数据。一个简单的对策是将不存在的数据也缓存起来(其 value 值为 null),并设 定一个较短的失效时间
关键算法
一致性 Hash 算法:在动态变化的Cache环境中,哈希算法应该满足的4个适应条件:均衡性(Balance),单调性(Monotonicity),分散性(Spread),负载(Load)。摘自知乎:https://zhuanlan.zhihu.com/p/98030096
数据映射:
服务器的删除与添加:
影响因子
缓存键集合大小
缓存可使用内存空间
缓存对象生存时间
评估算法的存储负载不均衡性
编写测试用例测试一致性 hash 算法,测试 100 万 KV 数据,10 个服务器节点的情况下,计算这些 KV 数据在服务器上分布数量的标准差,以评估算法的存储负载不均衡性。
见raox的实现代码:
https://github.com/raoxisme/Frontend-06-Template/blob/main/Week%2009/test100wkv.js
前提:
执行结果(1W):
std: 94.90814272524541
variance: 9007.555555555555
mean: 1000
版权声明: 本文为 InfoQ 作者【raox】的原创文章。
原文链接:【http://xie.infoq.cn/article/237cf8806bb4743ed1889c04f】。文章转载请联系作者。
评论