帮我写一个基于springboot的redis缓存配置
时间: 2023-05-16 16:04:54 浏览: 72
当然,我可以帮你。以下是一个基于Spring Boot的Redis缓存配置的示例:
首先,您需要在pom.xml文件中添加以下依赖项:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
然后,您需要在application.properties文件中添加以下配置:
```
spring.redis.host=your_redis_host
spring.redis.port=your_redis_port
spring.redis.password=your_redis_password
spring.redis.database=your_redis_database_number
```
接下来,您需要创建一个RedisConfig类,如下所示:
```
@Configuration
@EnableCaching
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(10))
.disableCachingNullValues()
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
return RedisCacheManager.builder(redisConnectionFactory)
.cacheDefaults(redisCacheConfiguration)
.transactionAware()
.build();
}
}
```
最后,您可以在您的服务类中使用@Cacheable注释来缓存方法的结果,如下所示:
```
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
@Cacheable(value = "myCache", key = "#id")
public MyEntity findById(Long id) {
return myRepository.findById(id).orElse(null);
}
}
```
这就是一个基于Spring Boot的Redis缓存配置的示例。希望对您有所帮助!