适应如下场景:关联表多,接口响应慢,报表数据不多,可能就十多行。参数也固定,实时性要求不高,隔那么半小时刷新一次,查询性能要求高,给领导看的,要求很快。
使用示例:
// 主打一个简单高效粗爆,ConcurrentHashMap也懒得用了。
private final static Map<String, MemberEnterCompositeVo> CACHE = new HashMap<>();
public void handleContext(FindMemberByStationSelectRequest context) {
// 缓存键
String areaId = context.getParentEnterAreaId();
MemberEnterCompositeVo result = CACHE.get(areaId);
if (null == result) {
result = findItemCount(areaId);
CACHE.put(areaId, result);
} else {
// 比对下是否有效
Long expire= result.getExpire();
// 有效期小于当前时间,过期了
if (expire< now) {
result = findItemCount(areaId);
CACHE.put(areaId, result);
}
}
context.setResult(result);
}