@Cacheable的详细介绍,结合redis的操作过程
@Cacheable
是Spring框架中用于缓存方法返回值的注解。它可以使用不同的缓存,例如JCache(JSR-107)、EhCache 2.x、Guava、Redis等。
当使用Redis作为缓存时,@Cacheable
会将方法的返回值序列化后存储到Redis中。当再次调用相同参数的方法时,会从缓存中读取结果,而不是执行实际的方法。
使用步骤:
- 添加Spring Cache和Redis依赖到项目中。
- 配置CacheManager,指定Redis作为缓存存储。
- 在方法上使用
@Cacheable
注解,指定缓存名称。
示例代码:
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
return RedisCacheManager.builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
.cacheDefaults(CacheBuilder.noExpiration().build())
.build();
}
}
@Service
public class SomeService {
@Cacheable(value = "itemCache", key = "#id")
public Item findItemById(Long id) {
// 实际的查询逻辑
}
}
在上述代码中,findItemById
方法的返回值会被缓存在名为itemCache
的缓存中,并使用提供的id
作为键。当再次调用该方法并传递相同的id
时,如果缓存中已经有了结果,就会直接从缓存中读取,而不会执行方法体内的查询逻辑。
评论已关闭