美文网首页
关于缓存系统的思考总结(一)

关于缓存系统的思考总结(一)

作者: 匿名张宁 | 来源:发表于2017-04-26 19:45 被阅读32次

前言

       自1946年第一台电子数字计算机诞生至今已逾七十多年,伴随着计算机的发展,计算机软件的变化也是翻天覆地。当前计算机软件越来越向高抽象、高复用、高性能、高可靠等特性发展。本文只关注于全局中极小的一点 -- 缓存 ,并结合笔者的实际工作经验和大家一起讨论一下相关内容。

缓存使用历程

        笔者刚刚参加工作的时候,BS结构刚刚发展起来,Spring尚未一统天下,Hibernate也未遇对手;互联网行业只是刚刚起步,反而是传统的企业信息化系统如日中天。这类软件系统的特点是:低抽象、低复用(各种企业内部特殊定制,貌似现在也是这样 ,很好奇SAAS是如何解决这些“需求”),一个系统总共使用人数不过二三百人,数据量不过百万。当时的系统结构是这样的:

       再往后大家发现,一个稍微复杂点的页面大都涉及到多次的数据库查询(比如:语种、币种、地区或各式各样的业务码表)性能损耗高到令人咋舌。于是不约而同的将一些相对固定的数据保存到本地缓存中,系统结构便演化成如下图(大多数关系数据库也是提供缓存优化的,但不在本文讨论范围内):

       在这个阶段,大型的项目(比如百万级以上)往往会利用f5或nginx配合SSO来实现高可用及负载均衡;但业务相关的缓存依旧在本地,并通过策略更新缓存信息(通常是定时)。Local Cache虽然性能极佳,但也有其固有的问题:1、成本昂贵,无法大规模扩展  2、在某个时间段内不同服务器缓存的信息不一致。所以Local Cache 又演化为Centralized Cache ,如下图:

        随着互联网的兴起,为满足高并发、大数据、低成本的要求,软件系统架构发生了革命性的变化。即由集中式像分布式服务演化,概要结构如下图:

        分布式服务治理+ 集中式缓存可以满足目前绝大多数业务场景的需要,并且由于可选开源产品的丰富使其构建大为简化。但集中式的缓存也有缺点,那就是IO消耗。程序每次访问缓存的时候都会与缓存服务器产生网络通讯(最少也需10ms以上),虽然在多数情况下这种消耗是可以接受的,但在一些极度要求吞吐量和并发量的系统中,任何性能优化都不为过。于是缓存便又演化成混合型(多级缓存),如下图:

        使用混合型缓存,可以将少量高频次访问的数据缓存在本地,尽量减少因访问缓存服务而导致的IO开销。

        软件系统在使用缓存上从无到有,从简到繁的过程,就是软件系统发展的过程。伴随着互联网的疯狂扩张,软件也会把自己的触角延伸到方方面面。这必然会带来更多的问题,更复杂的环境及更多的解决方案。

相关文章

  • 关于缓存系统的思考总结(一)

    前言 自1946年第一台电子数字计算机诞生至今已逾七十多年,伴随着计算机的发展,计算机软件的变化也是翻天覆地...

  • 常用缓存系统使用经验总结

    缓存系统是提升系统性能和处理能力的利器,常用的缓存系统各自的特性和使用场景有所不同,这里总结下常用缓存系统时需要关...

  • 大脑如何思考

    心理学中关于大脑的思考机制有两个术语:系统1和系统2。 系统1(快思考)自主运行,根据生活经验总结无数下意识反应的...

  • 全面了解Glide缓存

    1.综述 开始之前,关于Glide缓存请先思考几个问题: Glide有几级缓存? Glide内存缓存之间是什么关系...

  • 缓存污染日常实践思考

    缘起 这篇文章的思考缘于今天的一个系统发布引起的缓存污染,所谓的缓存污染指的是缓存数据的字段内容因为新旧服务同时存...

  • 学习计划

    三大系统 1 、思考系统 2、信息输入系统 3、表达系统 一、思考系统 总结各学科的核心概念和核心逻辑 神学...

  • 缓存Tips

    我们平常的iOS开发过程中,总会遇到各种需要缓存的需求,今天就来总结一下关于缓存方面的知识。 从缓存的类型上来说,...

  • 关于缓存的一点思考

     近期线上的redis业务集群因为不明原因的数据写入会偶发的出现内存使用过高的问题,针对这个现象特意在业务侧代码针...

  • 面试官:你对Redis缓存了解吗?面对这11道面试题你是否有很多

    前言 关于Redis的知识,总结了一个脑图分享给大家 1、在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会...

  • 007作业-12.28

    关于2018年的思考与总结, 感受最深的两个概念是“系统化思考”和“对反求诸己的反省”。 2018年还有很多想说的...

网友评论

      本文标题:关于缓存系统的思考总结(一)

      本文链接:https://www.haomeiwen.com/subject/btcwzttx.html