【软件开发 | 项目架构】实现缓存一致性

文章目录

    • 前言
    • 缓存失效与缓存一致性的定义
    • 我们为何如此关注缓存一致性?
    • 缓存失效的思维模型
    • 可靠的一致性观测能力
    • 一致性追踪
    • 真实缺陷
    • 总结

前言

缓存有助于降低延迟、扩展读密集型负载并节省成本,几乎无处不在。缓存不仅运行在你的手机和浏览器中,诸如 CDN(内容分发网络)和 DNS(域名系统)本质上也是地理分布式的缓存系统。正是因为背后有众多缓存协同工作,你才能顺畅地阅读这篇博客文章。

著名计算机科学家 Phil Karlton 曾说:“计算机科学中只有两件难事:缓存失效(cache invalidation)和命名问题。”如果你曾参与过带有失效机制的缓存系统开发,很可能遭遇过令人头疼的缓存不一致问题。

Meta 运营着世界上最大规模的缓存系统之一,包括 TAO 和 Memcache。多年来,我们通过一项指标将 TAO 缓存的一致性水平从 99.9999%(六个九)提升至 99.99999999%(十个九)。

针对缓存失效问题,我们相信现在已经找到了一种有效的解决方案,能够在理论与实践之间架起桥梁。本文介绍的原理和方法,广泛适用于各种规模的缓存服务,无论你是在 Redis 中缓存 Postgres 数据,还是维护分离式的物化视图。

希望此文能够帮助工程师减少缓存失效带来的困扰,使所有带失效机制的缓存系统实现更高的一致性。

缓存失效与缓存一致性的定义

按照定义&

你可能感兴趣的:(前后端项目开发(新手必知必会),架构,缓存,软件开发)