如何使用缓存提升SpringBoot性能(EhCache和Redis方式)
在Spring Boot中使用EhCache或Redis作为缓存可以显著提高应用程序的性能。以下是如何配置和使用EhCache和Redis作为缓存的示例。
EhCache配置:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
- 在
src/main/resources
目录下创建ehcache.xml
配置文件:
<ehcache>
<!-- 缓存配置 -->
<cache name="sampleCache"
maxEntriesLocalHeap="10000"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="1200">
<persistence strategy="localTempSwap"/>
</cache>
</ehcache>
- 在Spring Boot配置类中启用缓存:
@Configuration
@EnableCaching
public class CacheConfig {
}
- 使用缓存:
@Service
public class SampleService {
@Cacheable(value = "sampleCache", key = "#key")
public String getData(String key) {
// 实际的数据获取逻辑
return "data";
}
}
Redis配置:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 在
application.properties
或application.yml
中配置Redis连接信息:
# application.properties
spring.redis.host=localhost
spring.redis.port=6379
- 在Spring Boot配置类中配置Redis缓存管理器:
@Configuration
public class RedisCacheConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
return RedisCacheManager.builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
.cacheDefaults(CacheConfiguration.defaultCacheConfig())
.build();
}
}
- 使用缓存:
@Service
public class SampleService {
@Cacheable(value = "sampleCache", key = "#key")
public String getData(String key) {
// 实际的数据获取逻辑
return "data";
}
}
在这两种情况下,@Cacheable
注解都用于标
评论已关闭