1. 为什么需要本地缓存?
在Web应用开发中,数据库查询往往是性能瓶颈的主要来源。我经历过一个电商项目,商品详情页的QPS在促销期间达到5000+,直接查询MySQL导致数据库CPU飙升至90%以上。当时紧急引入本地缓存后,数据库负载立即下降60%,这就是本地缓存的威力。
Ehcache作为Java生态中最成熟的本地缓存框架之一,相比直接使用ConcurrentHashMap,它提供了:
- 缓存过期策略(TTL/TTI)
- 堆外内存存储
- 缓存持久化
- 完善的监控统计
- 与Spring的无缝集成
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 项目环境搭建
2.1 依赖配置
在pom.xml中添加必需依赖:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.6</version>
</dependency>
注意:Spring Boot 2.x默认使用Ehcache 3.x,但考虑到生产环境稳定性,这里推荐使用经过验证的Ehcache 2.10.x版本
2.2 缓存配置文件
在resources目录下创建ehcache.xml:
xml复制<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd">
<diskStore path="java.io.tmpdir/ehcache"/>
<cache name="productCache"
maxEntriesLocalHeap="10000"
timeToLiveSeconds="3600"
