使用Spring Boot2 CacheManager在Redis中存储非类型化JSON可以通过以下步骤实现:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
spring.redis.host=127.0.0.1
spring.redis.port=6379
@EnableCaching
注解开启缓存功能,并使用@Configuration
注解将其作为配置类。@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));
return RedisCacheManager.builder(redisConnectionFactory)
.cacheDefaults(cacheConfiguration)
.build();
}
}
@Cacheable
、@CachePut
等。同时,可以通过设置key
属性来指定缓存的键名。例如:@Service
public class ExampleService {
@Cacheable(value = "exampleCache", key = "#id")
public ExampleEntity getExampleEntityById(Long id) {
// 从数据库或其他数据源获取数据
return exampleEntity;
}
}
以上步骤完成后,Spring Boot就会使用Redis作为缓存存储非类型化JSON数据。每次调用被缓存的方法时,会先检查Redis中是否存在对应的缓存数据,如果存在则直接返回缓存数据,否则执行方法体,并将方法返回值缓存到Redis中。
此外,Spring Boot提供了丰富的注解和配置选项,用于进一步定制和优化缓存功能。更多详情可参考Spring Boot官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-caching
领取专属 10元无门槛券
手把手带您无忧上云