当前位置: 首页 > article >正文

【已解决】redisCache注解失效,没写cacheConfig

环境配置

jdk11    springboot 2.6.13    

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
      <version>3.2.0</version>
</dependency>

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-cache</artifactId>
      <version>3.2.0</version>
</dependency>
  redis:
    host: 192.168.2.129
    port: 6379
    username: default
    password: 'linux02'
    database: 1
#    默认使用lettuce
    lettuce:
      pool:
#        最大连接数,最大空闲数,最小空闲数
        max-active: 5
        max-idle: 2
        min-idle: 2
  #    缓存10min,允许缓存null值防止缓存穿透
  cache:
    type: redis
    redis:
      time-to-live: 600
      cache-null-values: true

代码

  @Cacheable(cacheNames = BLOG_CACHE_PREFIX + "otherPassages", key = "#userId")
  @Override
  public List<PassageTitleVO> getOtherPassagesByUserId(Long userId) {
       ....
        ....
    return passageTitleVOS;
  }

解决

网上找了一些案例,有的不需要写cacheConfig,有些需要写,我之前就用过cacheable的注解,当时就是上面的配置,没写配置类也有效果,这次我最开始就没写,然后Cacheable注解就没效果了,最后写了个cacheConfig才解决。


@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {

  @Bean
  public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
    return RedisCacheManager.builder(redisConnectionFactory).build();
  }

}

然后又发现yml设置的过期时间没有生效,存到redis的是永不过期,又在 cacheConfig配置了过期时间,600s

@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {

  @Bean
  public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
    RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
        .entryTtl(Duration.ofSeconds(600));
    return RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(redisCacheConfiguration)
        .build();
  }

}

http://www.kler.cn/a/521531.html

相关文章:

  • 项目测试之Postman
  • goframe 博客分类文章模型文档 主要解决关联
  • C++进阶课程第2期——排列与组合1
  • 数据分析常用的AI工具
  • Java基础知识总结(二十二)--List接口
  • 重回C语言之老兵重装上阵(十六)C语言可变参数
  • 低代码可视化-转盘小游戏可视化-代码生成器
  • OSPF协议考点
  • 【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)
  • Python 如何进行文本匹配:difflib| python 小知识
  • [蓝桥杯 2014 省 AB] 蚂蚁感冒
  • 独立开发者产品日刊:让ChatGPT自动执行任务、AI电子阅读器、音频转视频、Android 智能助手、对话生成表单、SEO内容优化
  • 使用python实现mongodb的操作
  • C语言,无法正常释放char*的空间
  • 03-画P封装(制作2D+添加3D)
  • 《剪映5.9官方安装包》免费自动生成字幕
  • PHP根据IP地址获取地理位置城市和经纬度信息
  • flink StreamGraph解析
  • 为何SAP S4系统中要设置MRP区域?MD04中可否同时显示工厂级、库存地点级的数据?
  • Hive:内部表和外部表,内外转换