手把手教你做一个缓存工具
日常开发中,某些数据接口即使优化到极致,都难免还会存在计算量巨大导致响应过慢,多数情况单独做一个统计表用于存放这些处理后的数据用于读取,或者接入redis/memcache存数据,就是说单次响应本身是可以接受较慢一些的,实时性并非特别高,则可以考虑引入缓存机制,提升使用体验。说到用缓存,那就会有人提出用redis,但是项目组认为项目紧急,不希望浪费时间到新的工具研究上,或虽然熟悉,但维护工作有成本,为了有限的效果付出太多不划算。那么怎么办,没得搞了,只能手把手给项目做一个缓存工具了!吃掉JVM!也和spring cache很类似的。 这样的缓存机制,无非就是key-value模型的体现,所以首先想到了map。 Map<String, Object> cache = new HashMap<>(); 一个缓存工具就完成了,快吧。怎么用的话,就类似这样嘛: @GetMapping("/{id}" ) public Object get(@PathVariable("id" ) String id) { if (cache.containKey(id)) { return cache.get(id); } // 调取服务获取对象 Object obj = service.get(id); // 塞进缓存中 cache.put(id, obj); return obj; } 挺好用的