springboot redis 缓存代码实例
时间: 2023-07-26 08:29:30 浏览: 117
好的,下面是一个简单的 Spring Boot Redis 缓存代码实例:
首先需要在 pom.xml 中添加 Redis 相关依赖:
```xml
<dependencies>
<!-- Spring Boot Redis 相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<!-- 其他依赖省略 -->
</dependencies>
```
然后在 application.properties 文件中配置 Redis 连接信息:
```properties
# Redis 连接信息
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0
```
接下来定义一个 Redis 缓存管理器的 Bean:
```java
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.concurrent.ConcurrentMapCacheManager;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableCaching
public class RedisConfig {
// 定义 Redis 缓存管理器的 Bean
@Bean
public CacheManager cacheManager() {
return new ConcurrentMapCacheManager(); // 使用内存缓存
}
// 定义 Redis 缓存的 Key 生成器的 Bean
@Bean
public KeyGenerator keyGenerator() {
return (target, method, params) -> {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append(":");
sb.append(method.getName());
for (Object obj : params) {
sb.append(":");
sb.append(obj.toString());
}
return sb.toString();
};
}
}
```
最后在需要使用缓存的 Service 类中添加 @Cacheable、@CachePut、@CacheEvict 等注解即可:
```java
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class UserService {
// 使用 @Cacheable 注解实现缓存
@Cacheable(value = "userCache", keyGenerator = "keyGenerator")
public User getUserById(Long id) {
// 从数据库中查询用户信息
User user = userRepository.findById(id).orElse(null);
return user;
}
// 使用 @CachePut 注解更新缓存
@CachePut(value = "userCache", keyGenerator = "keyGenerator")
public User updateUser(User user) {
// 更新用户信息到数据库
user = userRepository.save(user);
return user;
}
// 使用 @CacheEvict 注解清除缓存
@CacheEvict(value = "userCache", keyGenerator = "keyGenerator")
public void deleteUser(Long id) {
// 从数据库中删除用户信息
userRepository.deleteById(id);
}
}
```
以上就是一个简单的 Spring Boot Redis 缓存代码实例。
阅读全文