Springboot+Redis:实现缓存 减少对数据库的压力
在Spring Boot中使用Redis作为缓存来减少对数据库的压力,你可以通过以下步骤实现:
- 添加依赖到你的
pom.xml
或build.gradle
文件中。
Maven的pom.xml
中添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Gradle的build.gradle
中添加:
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
- 在
application.properties
或application.yml
中配置Redis连接。
application.properties
示例:
spring.redis.host=localhost
spring.redis.port=6379
- 使用
RedisTemplate
或StringRedisTemplate
操作Redis。 - 创建服务并使用缓存。
示例代码:
@Service
public class CachedService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private UserRepository userRepository; // 假设有一个UserRepository
@Cacheable(value = "users", key = "#id")
public User findUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
public void updateUser(User user) {
userRepository.save(user);
redisTemplate.delete("users:" + user.getId()); // 删除缓存
}
}
在这个例子中,findUserById
方法使用了@Cacheable
注解,这意味着如果缓存中存在数据,方法将不会被调用,而是直接从缓存中返回结果。updateUser
方法在更新用户信息时,同时会删除缓存中对应的数据,这样在下次获取该用户信息时,会重新从数据库中获取并缓存。
评论已关闭