厦门品牌网站建设工作总结2023年个人
2026/2/17 15:19:43 网站建设 项目流程
厦门品牌网站建设,工作总结2023年个人,固定在网站底部,ppt模板免费下载素材简约缓存#xff1a;高速存取数据的前哨站缓存的根本思想#xff0c;源于一个在计算机科学中被反复验证的黄金法则——局部性原理#xff08;Principle of Locality#xff09;。该原理包含两个层面#xff1a;1#xff09;时间局部性#xff08;Temporal Locality#xff…缓存高速存取数据的前哨站缓存的根本思想源于一个在计算机科学中被反复验证的黄金法则——局部性原理Principle of Locality。该原理包含两个层面1时间局部性Temporal Locality如果一个数据项被访问那么在不久的将来它极有可能被再次访问。例如一篇热门新闻的详情页、一个爆款商品的库存信息。2空间局部性Spatial Locality如果一个数据项被访问那么与它物理位置相邻的数据项也极有可能被访问。这个原理在处理器缓存和硬盘预读中体现得更明显在应用层缓存中可以引申为相关联的数据也可能被一并访问。缓存正是利用了这一原理将那些被频繁访问的“热点数据”从低速的后端存储如数据库中复制一份暂存到高速的存储介质通常是内存中。当后续请求再次需要这些数据时系统可以直接从高速的缓存中获取从而绕过缓慢且昂贵的数据库访问路径。image本地缓存和远程缓存是两种缓存策略主要区别在于数据存储位置和访问方式。1本地缓存Local Cache将数据存储在应用内存中访问速度快适合小量且频繁访问的数据。但应用关闭或重启可能导致数据丢失多应用实例间可能存在数据一致性问题。常见实现有Guava Cache和Caffeine Cache。2远程缓存Remote Cache将数据存储在网络服务器上可以在多应用实例间共享解决数据一致性问题且数据不会因应用关闭而丢失。虽访问速度相对慢但通过优化网络和数据结构性能可得到提升。常见实现有Redis和Memcached。在现代大型系统中通常采用多级缓存的策略即同时使用进程内缓存和分布式缓存以兼顾速度与一致性构建一个纵深防御体系。image一致性缓存一致性Cache Consistency是指在使用缓存的系统中确保源数据如数据库与缓存数据间保持同步。在并发系统中由于多个服务节点可能同时进行数据读写维护缓存一致性成为了一个重要且具有挑战性的问题。以下是一些常见的处理缓存一致性的策略。1旁路缓存Cache-Aside 最经典的模式。读操作先读缓存未命中则读数据库并回写缓存写操作则先更新数据库再失效Delete缓存。选择失效而非更新缓存是为了避免复杂场景下的并发写问题。2读/写穿透Read/Write-Through应用层只与缓存交互由缓存服务自身负责与数据库的同步。3写回Write-Back 写操作只更新缓存缓存根据一定策略如定时、定量批量异步地将数据刷回数据库。性能最高但一致性最弱且有数据丢失风险。选择哪种策略取决于业务对数据一致性要求的容忍度这是一个需要在成本、性能和一致性之间做出的权衡。过载保护缓存的过载保护的核心目标是防止数据库过载因为缓存的主要职责是降低数据库的压力并提升数据访问的效率。当缓存未能找到数据时请求会直接访问数据库如果这种情况在大量请求中频繁发生可能导致数据库因过载而崩溃。缓存穿透缓存穿透Cache Penetration是指查询一个在缓存和数据库中都不存在的数据。如果每个请求都穿透到数据库那么缓存就变成了摆设这会给数据库带来很大的压力影响正常的服务。为了防止这种情况可以使用布隆过滤器来判断一个元素是否在集合中。如果布隆过滤器表示不存在那么就肯定不存在如果布隆过滤器表示可能存在再去查询缓存。另一种策略是缓存空结果即使数据库中没有数据也可以在缓存中存储一个空对象或空结果并设置一个较短的过期时间。image缓存击穿缓存击穿Cache Breakdown是指在使用缓存时当某个热点数据的缓存过期或不存在时大量并发请求同时访问该数据导致请求直接落到数据库上。为了防止这种情况在缓存失效时使用互斥锁来保证只有一个请求能够访问数据源其他请求等待并从缓存中获取数据。缓存雪崩缓存雪崩Cache Avalanche是指在使用缓存系统时当缓存中的大量热点数据同时失效或清空时导致大量请求直接落到数据库上。为了防止这种情况可以通过设置缓存过期时间的随机性比如在基础过期时间上添加一个随机值确保缓存数据在不同的时间过期。另外也可以使用限流方式避免高流量请求同时大道数据库。未完待续

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询