缓存机制

Android 客户端缓存机制

Android客户端的缓存机制能很好的提高客户端的显示速度,节省不必要的流量请求,为用户提供良好的体验等优点。虽然Android缓存有上述所述的好处,但并不是所有的网络请求,所有的业务逻辑都适合使用缓存机制!如,电商中常有的秒杀功能要求数据实时性特别强,几毫秒的缓存延迟都会严重影响数据的同步,给用户错误的库存及倒计时的体验!那什么情况下适合运用缓存机制了,其实也好理解,就是对于数据实时性要求不高,对数据买保鲜性要求较低的业务请求,我们可以考虑使用缓存机制来进行数据缓存,充分利用缓存带给我们的好处!

下面争对我开发的电商Android客户端的业务,来说明一下请求是否适合使用缓存:

业务功能 是否适用缓存 缓存内容 说明
轮播图 Json数据 数据不会经常改动
快速入口 Json数据 数据及跳转的地址不会经常变动
秒杀 时实性较强,需要与后台数据保持高度的实时性
专题 Json数据 实时性要求不高
行业精选 Json数据 实时性要求不高
大数据推荐 实时高,根据用户的浏览历史推出不同的商品
普通商品详情 现有基础上不能缓存,若是能把请求进行细分,可以考虑部分缓存
秒杀商品详情 实时性较强,需要与后台数据保持高度的实时性
显示广告 Json数据 这个修改不会过于频繁,若要修改频繁可以设置一个较短的失效时间

##缓存方案##

###缓存方案的流程图如下所示:###
cache uml

###缓存方案实现简单介绍:###
(1)在手机内存中进行缓存,初步设想为Map结构,缓存是传入关键字(key)和要缓存的数据(例如为Object),使用缓存时直接根据关键字(key)来获取缓存中的数据(Object),再根据Object中的属性更新界面显示。

(2)若在(1)中取出的Object为空,说明内存中没有缓存key所对应的数据对象,我可以从二级缓存数据库中进行读取,并把缓存更新内存缓存中。

(3)若在(2)中也没有读取到Key所对应的数据,则发送网络请求从后台服务器端获取数据,更新界面及手机内存缓存和数据库缓存,为下次使用缓存提供数据支撑!