美文网首页
图片缓存框架

图片缓存框架

作者: 蔚尼 | 来源:发表于2023-12-18 17:45 被阅读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、网络请求返回后

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

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

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

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

    网络请求读取到数据后放到缓存当中

    相关文章

      网友评论

          本文标题:图片缓存框架

          本文链接:https://www.haomeiwen.com/subject/bpvagdtx.html