请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

三级缓存的意义

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

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

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

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

正在回答

1回答

马超老师 2022-12-02 15:37:54

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

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

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 蓝色西西 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2022-12-02 17:14:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信