三级缓存的意义

来源:11-5 三级缓存实现(一)

蓝色西西

2022-12-01

老师,当前主流的app都有三级缓存设计吗。三级缓存结构在市面上通用吗。

如果后台服务器文件,资源,图片等更新了,三级缓存如何感知到呢。

比如服务器新添加了修改了一些数据。三级缓存如何及时感知到,跟着更新。

三级缓存会不会导致app最新数据延迟。

写回答

1回答

马超老师

2022-12-02

主流的App基本上都会有三级缓存的设计,这个结构在市面上是非常通用的。基本上我们常用的和网络有关的第三方库(比如图片、网络、音视频等等)内部都会用三级缓存实现缓存管理。

只不过在真实的开发环境中的设计会更加复杂,通常会有一个专门的模块来做这个,并且会引入LRU Cache等方式进行内存优化,也会有专门的同步机制来解决后台资源更新的问题

关于感知后台数据更新,通常有两种做法,分别针对于实时性要求高的数据和实时性要求不高的数据:

1、实时性要求高的时候。服务端会下发一个通知,告诉我们某个数据已经更新了,这时候本地会删除缓存,那么当再次使用的时候,根据三级缓存的原理会重新从服务端拉取数据实现实时更新。

2、实时性要求不高的时候。我们优先使用本地数据,同时在空闲时间向后端发起一个更新请求,服务端只返回一个版本号,我们通过版本号可以知道当前数据是否是最新的,然后决定是否要删除本地数据。这样一来数据就会在下一次使用的时候更新。

本案例中展示的是一个最基本的设计思路,一个完整的缓存框架也是一个庞大的工程,三级缓存是其中的一个基本思路。

0
1
蓝色西西
非常感谢!
2022-12-02
共1条回复

基于Flutter 3.x 实战跨平台仿抖音App混合开发

以短视频APP为例,快速上手原生/Flutter 混合开发

481 学习 · 120 问题

查看课程