怎么通过redis实现springboot项目的自动缓存
时间: 2023-12-19 18:03:51 浏览: 25
可以通过使用Spring Data Redis来实现自动缓存,具体步骤如下:
1. 添加依赖
在pom.xml文件中添加Spring Data Redis依赖
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
2. 配置Redis
在application.properties文件中配置Redis连接信息
```properties
# Redis连接信息配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0
spring.redis.timeout=10000
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
```
3. 编写业务类
通过Spring的缓存注解@Cacheable,@CachePut可以实现自动缓存,例如:
```java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
return userRepository.getUserById(id);
}
@CachePut(value = "userCache", key = "#user.id")
public User update(User user) {
userRepository.update(user);
return user;
}
}
```
4. 测试缓存
使用Junit进行测试,可以看到第一次查询数据库,第二次查询Redis缓存。
```java
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void test() {
Long id = 1L;
User user = userService.getUserById(id);
System.out.println(user);
user.setName("new name");
userService.update(user);
User updatedUser = userService.getUserById(id);
System.out.println(updatedUser);
}
}
```