聊聊缓存的妙用和问题

31 篇文章 1 订阅
29 篇文章 0 订阅

朋友们,大家好呀。

正在热火朝天的进行中,之前的技术专题对于技术领域领域有所限制,那我们本期就没有明显的领域限制啦。

本期我们来聊一聊缓存的妙用和问题,说一说你是如何利用缓存解决问题,也谈一谈因为缓存又带来了哪些新的问题!

回顾一下缓存的原始意义:是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。

可以看到缓存的最初使用是作用于系统级的,但随着一代代工程师的挖掘和实战,缓存慢慢的走进了更多的生态之中,比如:浏览器缓存,后端体系中如MyBatis框架中的一级、二级缓存、基于Redis搭建的缓存服务等等,甚至为了保证网络质量不佳情况时APP的正常使用,我们也会为所有的 API 加上缓存,从另一个方面说,缓存已经成为互联网生态中必不可少的一部分。

总结一句话:缓存是提高性能最好的方式。

在缓存的设计与使用中,存在多种多样的技巧和方案,本文抛砖引玉,以Cache Aside 更新模式为例来介绍一下最常用的缓存设计方案,主要逻辑即考虑:失效、命中、更新时的动作。

失效:应用程序先从 Cache 取数据,如果没有得到,则从数据库中取数据,成功后,放到缓存中。 命中:应用程序从 Cache 中取数据,取到后返回。 更新:先把数据存到数据库中,成功后,再让缓存失效。

如此一来,便可以建立起一个简单的缓存服务,为接口提高最高效率的查询速度。 但是朋友们,重点来了,这样做真的是完美方案吗?我们会问这样的几个问题:

为什么不是写完数据库后更新缓存 如何保证缓存的命中 如何保证数据的强一致性 如何设计缓存的淘汰策略 如何有效的水平拓展缓存服务 如何配合缓存设计最大吞吐量的系统 如何做好针对缓存的监控 如何设计多级缓存

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值