采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,当前主流的app都有三级缓存设计吗。三级缓存结构在市面上通用吗。
如果后台服务器文件,资源,图片等更新了,三级缓存如何感知到呢。
比如服务器新添加了修改了一些数据。三级缓存如何及时感知到,跟着更新。
三级缓存会不会导致app最新数据延迟。
主流的App基本上都会有三级缓存的设计,这个结构在市面上是非常通用的。基本上我们常用的和网络有关的第三方库(比如图片、网络、音视频等等)内部都会用三级缓存实现缓存管理。
只不过在真实的开发环境中的设计会更加复杂,通常会有一个专门的模块来做这个,并且会引入LRU Cache等方式进行内存优化,也会有专门的同步机制来解决后台资源更新的问题
关于感知后台数据更新,通常有两种做法,分别针对于实时性要求高的数据和实时性要求不高的数据:
1、实时性要求高的时候。服务端会下发一个通知,告诉我们某个数据已经更新了,这时候本地会删除缓存,那么当再次使用的时候,根据三级缓存的原理会重新从服务端拉取数据实现实时更新。
2、实时性要求不高的时候。我们优先使用本地数据,同时在空闲时间向后端发起一个更新请求,服务端只返回一个版本号,我们通过版本号可以知道当前数据是否是最新的,然后决定是否要删除本地数据。这样一来数据就会在下一次使用的时候更新。
本案例中展示的是一个最基本的设计思路,一个完整的缓存框架也是一个庞大的工程,三级缓存是其中的一个基本思路。
非常感谢!
登录后可查看更多问答,登录/注册
以短视频APP为例,快速上手原生/Flutter 混合开发
1.8k 8
478 5
557 4
602 4
561 4