Springboot cache manager+redisson
1.开启缓存@EnableCaching
2.配置CacheManager,修改使用redis作为缓存数据库(提前准备好redisson客户端)
@Configuration
@EnableCaching
public class SpringCacheConfig {
@Bean
@Primary
public CacheManager cacheManager(@Autowired final RedissonClient redissonClient) {
RedissonSpringCacheManager manager = new RedissonSpringCacheManager(redissonClient);
//最大存活半分钟
final Long max_live_time = Duration.ofSeconds(30).toMillis();
//最大闲置10秒就被清除
final Long max_idle_time = Duration.ofSeconds(10).toMillis();
final Integer max_size = 5 * 1000;
CacheConfig defaultConfig = new CacheConfig(max_live_time, max_idle_time);
defaultConfig.setMaxSize(max_size);
manager.setConfig(new HashMap<String, CacheConfig>() {{
put("app", defaultConfig);
put("...", defaultConfig);
}});
manager.setCodec(new JsonJacksonCodec());
return manager;
}
}
3.使用示例
@Cacheable(value = "app", key = "#id")
public ApiResult<AppResp> detail(final String id) {
//...
return ApiResult.ok(appDTO);
}
@CacheEvict(value = "app", key = "#id")
public ApiResult<Void> remove(final String id) {
//在对缓存产生影响的方法中将缓存失效
}
@CachePut(value = "app", key = "#dto.id")
public ApiResult<AppResp> save(AppReq dto) {
//在对缓存产生影响的方法中将缓存失效并将结果重新放回缓存区
return ApiResult.ok(appDTO);
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)