图片缓存框架

考察点

架构&框架

设计架构要解决什么问题呢?
1.实现模块化
2.进行分层,实现解耦
3.降低代码的重合度

图片缓存

怎样设计一个图片缓存框架?

怎样设计一个图片缓存框架?

图片缓存--读写流程

图片通过什么方式进行读写,过程是怎样的?

image.png

图片在图片框架的读取流程:

图片在图片框架的读取流程

图片缓存--内存设计

内存的设计上需要考虑哪些问题?
1.存储的Size
2.淘汰策略

1、存储的size:

例如,我们可以如下分配:
10kb以下图片:分配50个
100kb:分配20个
100kb以上,分配10个

以队列的形式,先进先出:


各个size图片缓存空间分配

2、淘汰策略

·策略1:以队列先进先出的方式淘汰

先进先出的方式淘汰

·策略2:LRU算法(如30分钟之内是否使用过)

定时检查:
每次进行读写时,进行检查
前后台切换时候,进行检查

LRU算法进行淘汰

图片缓存--磁盘设计

磁盘设计需要考虑哪些问题?
1、存储方式
2、大小限制(如100MB)
3、淘汰策略(如某一图片存储时间距今已超过7天)

图片缓存--网络设计

网络部分的设计需要考虑哪些问题?
1、图片请求最大并发量
2、请求超时策略(例如失败后可以重试2次)
3、请求优先级

图片缓存--图片解码

对于不同格式的图片,解码采用什么方式来做?
·应用策略模式对不同图片格式进行解码

在哪个阶段做图片解码处理?
a、磁盘读取后
b、网络请求返回后

图片缓存--线程处理(整个流程)

先去缓存里面读取,读取到就显示;
缓存没有就到 磁盘查找,读取到就保存到缓存里面、并显示;

磁盘读取到数据后放到缓存

磁盘里面没有读取到,就去网络请求,请求回来后放到缓存里面,并显示。

网络请求读取到数据后放到缓存当中
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容