DBFlow源码分析:缓存相关

96
linheimx
2016.11.14 23:14* 字数 409

LruCache

说到缓存,不得不提LruCache。

  1. 为什么要用缓存?

比如你是个厨师,柴米油盐酱醋茶你要经常使用吧,你可以把它们放到小橱柜里。这很方便啊,下次使用直接从橱柜里面去拿。要是你把他们放到商店里(嘿嘿),拿岂不是每次做饭做菜,都得跑到千里之外的商店去买去拿?
你经常使用的数据,那就把它们存储到一个地方吧,这个地方可以是内存,也可以是硬盘。而内存的读写速度比硬盘快多了,所以内存缓存是比较常用的。下次想要使用某个东西,你可以先看内存里面有没有,有的话直接使用,岂不是很快。

  1. 为什么要使用LruCache?

内存是由容量限制的:这个屋子可以放十袋大米,过了几个月后,你有有新的几代大米要放进这个屋子里,你怎么办呢?把最陈最老的几代大米给扔了,然后你再把新的大米放进去。



ModelCache

ModelCache对LruCache进一步包装,对外暴露了几个方法


ModelLruCache

对ModelCache进行具体的实现。使用了LruCache


对数据的存取是根据id来实现的:


综上,利用lrucache对数据的缓存是多么的轻松~

SimpleMapCache

对ModelCache进行具体的实现。使用了HashMap

SparseArrayBasedCache

对ModelCache进行具体的实现。使用了SparseArray

DBFlow
Web note ad 1