在Spring Boot项目中使用Spring Cache和Redis作为缓存中间件,你需要做以下几步操作:
- 添加依赖到
pom.xml
:
<dependencies>
<!-- Spring Boot Cache Abstraction -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- Spring Data Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
- 在
application.properties
或application.yml
中配置Redis连接:
# application.properties
spring.redis.host=localhost
spring.redis.port=6379
- 在Spring Boot启动类上添加
@EnableCaching
注解启用缓存:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
public class CacheApplication {
public static void main(String[] args) {
SpringApplication.run(CacheApplication.class, args);
}
}
- 使用Spring Cache注解:
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class SomeService {
@Cacheable(value = "items", key = "#id")
public Item findItemById(Long id) {
// 模拟数据库查询
return ...;
}
}
在上述示例中,当findItemById
方法被调用时,如果缓存中不存在对应的数据,则执行方法体中的代码来获取数据,并将结果存储在名为items
的缓存中,键(key)为传入的id
参数。如果缓存中已存在该数据,则直接从缓存中获取,不再执行方法体中的代码。这样可以提高应用的性能,减少数据库的负担。