图片缓存框架

2023-12-18  本文已影响0人  蔚尼
考察点

架构&框架

设计架构要解决什么问题呢?
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、网络请求返回后

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

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

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

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

网络请求读取到数据后放到缓存当中
上一篇下一篇

猜你喜欢

热点阅读