数据缓存
API可支持对接调用API的结果进行临时缓存,当命中缓存时,无需查询数据库,当重复查询较多时,可提高查询性能,降低数据库负载。用户需在创建API时配置对应的缓存配置,开启API缓存后,可选择缓存的失效周期和失效时间:
- 月:可选择每月中的哪一天,或哪几天的具体时间进行缓存清空,选择多天时,只能指定一个具体的时间进行缓存清除。例:选择每月1日、15日的00:00清空一次缓存
- 周:与月周期类似。
- 天:可选择缓存失效的具体时间点,会在每天的指定时间中清除缓存。
- 时:可选1-24小时的整数小时,缓存失效时间间隔从当天的00:00开始计算,当天设置的缓存时间当天生效,例:当日05:00设置缓存失效间隔时间6h,则当日的06:00开始进行缓存失效,之后每隔6h清除一次缓存。
- 分:可选间隔5-30min,5min一个区间。缓存失效时间间隔从当天的00:00开始计算,当天设置的缓存时间当天生效。例:当日05:00设置缓存失效间隔时间20min,则当日的00:00开始计算每隔20min清除一次缓存。
缓存的存储
API的数据缓存可基于Redis或HBase,虽然本平台也使用Redis,但是平台本身的Redis容量有限,且对平台正常运作有关键的影响。因此,这里的API业务数据缓存,需客户单独准备Redis或HBase集群。其中,HBase集群暂时不支持Kerberos认证。
缓存的命中
在API开启缓存的前提下,调用同一个API时:
- 当缓存中有查询结果时,查询缓存。
- 若缓存中没有结果,则查询数据库。
- 对API的请求参数key与value缓存(包含分页参数),比如同一个API,某一次请求传参a:5,b:3,pageNo:2,pagesize:30,系统缓存了一次;如下次传参a:10,b:3,pageNo:2,pagesize:30,则HBase未缓存该结果,需要查询数据库。
缓存的更新
目前API缓存为定时全局更新,即到达用户设置的定时时间时,将会全量清空缓存。