一种简单的小报表本地缓存方案

适应如下场景:关联表多,接口响应慢,报表数据不多,可能就十多行。参数也固定,实时性要求不高,隔那么半小时刷新一次,查询性能要求高,给领导看的,要求很快。
g
使用示例:

// 主打一个简单高效粗爆,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);
    }

相关推荐

  1. vue3页面路由缓存方法

    2024-05-11 15:56:07       16 阅读
  2. RSS 简洁优雅数据订阅方式

    2024-05-11 15:56:07       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-11 15:56:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-11 15:56:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-11 15:56:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-11 15:56:07       18 阅读

热门阅读

  1. 用python写一个自动生成android开机动画的工具

    2024-05-11 15:56:07       12 阅读
  2. C语言中 #include<>与 include ““的区别

    2024-05-11 15:56:07       13 阅读
  3. 找第二大的数(分治法)

    2024-05-11 15:56:07       11 阅读
  4. 个人如何做股指期货交易?

    2024-05-11 15:56:07       14 阅读
  5. 间隔采样视频的代码

    2024-05-11 15:56:07       13 阅读
  6. 低方差过滤

    2024-05-11 15:56:07       9 阅读
  7. how do i get chat‘s members‘s ids by bot in telegram

    2024-05-11 15:56:07       8 阅读
  8. GO:流程控制

    2024-05-11 15:56:07       8 阅读
  9. MYSQL变量的定义与使用

    2024-05-11 15:56:07       11 阅读
  10. Rust教程:贪吃蛇游戏(第 1/2 部分)

    2024-05-11 15:56:07       9 阅读
  11. 神经网络模型里面权重衰减的理解

    2024-05-11 15:56:07       8 阅读
  12. Oracle 10/11g 修改默认占用8080端口

    2024-05-11 15:56:07       10 阅读