山东省住房和城乡建设厅服务网站,阿里巴巴网站是用什么技术做的,赣州网络台直播,全国企业查询网上查询缓存的缘起
使用缓存的主要原因包括提高系统性能、降低数据库负载、提升用户体验和保证系统可用性。
在计算机体系结构中#xff0c;由于处理器和存储器的处理时间不匹配#xff0c;在处理器和一个较大较慢的设备之间插入一个更小更快的存储设备#xff08;如高速缓存由于处理器和存储器的处理时间不匹配在处理器和一个较大较慢的设备之间插入一个更小更快的存储设备如高速缓存成为现代设计和实现的一个普遍观念。下图是一个典型的存储器层次结构来自《深入理解计算机系统·第三版》
进入互联网时代后基于网络的分布式系统逐步成为主流。互联网应用的用户多、访问量大用户对系统响应时间感知很敏感因此对系统提出来新的要求。
与CPU的时间相比单个用户要求的响应时间很长如果是人工操作可能到百毫秒级即可如果是服务调用可能要求在毫秒级。数量庞大的请求量则对系统的处理能力提出了新的挑战也产生了众多的解决方案。
在这些解决方案中主流的方案之一是使用缓存。根据应用服务功能的特性提供各种各样的缓存机制。
应用缓存的原理 与处理器和存储器的处理时间不匹配类似. 处理请求和响应不匹配的本质仍然是处理时间不匹配。 造成响应时间长的典型原因有以下几种
业务逻辑的复杂性增加了响应的时间物理资源的限制引起资源的竞争、排队从而延长了响应时间访问量的突发性加剧了上述问题的发生概率利用上述特性进行主动/恶意攻击加剧了上述问题发生几率。
缓存的分类
根据缓存所处的位置、担任的角色不同缓存具有不同的分类方法。 根据缓存在应用中的位置可以分为浏览器缓存、客户端缓存、服务器缓存、数据库缓存等。 根据缓存的放置方式可以分为本地缓存、分布式缓存等。 根据缓存的生命周期有不过期缓存和带过期时间缓存。
几点注意
由于增加了缓存这一中间交互不可避免的增加了复杂度也就引出了一些相关的问题点需要注意。
数据不一致
最典型的是缓存数据和数据库的数据不一致。 其次如果是分布式缓存如果存在节点异常可能会存在多个节点的数据不一致有脏数据。
热点问题
对于突发事件、重大热点、秒杀、抢票等类似问题如果采用缓存相应的数据就会变成热点hotkey需要避免热点问题带来的系统崩溃。
缓存雪崩、穿透、击穿
缓存雪崩是指大量的缓存不同缓存key同时大面积失效导致缓存无效从而导致后端数据库系统的压力过大而崩溃。 缓存穿透是指请求到空数据缓存和数据库中都不存在每次都会落到数据库查询。 缓存击穿大量请求命中不到缓存而查到数据库而这些请求请求的是同一条数据。这一点与缓存雪崩有显著差别。
小结
本文根据缓存的来源简要的介绍了缓存的来源、分类和注意事项便于对缓存有个概念上的了解。在后续内容将会介绍具体实践内容以便于更细致的了解。