cacheable 过期设置

2023-11-09

1.增加pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

2.配置redis连接


#  redis配置
spring:
  redis:
    database: 0
    host: 10.0.0.36
    password: 123456
    port: 6379
    timeout:  5000
    lettuce:
      pool:
        max-active: 300
        max-wait: -1
        max-idle: 20
        min-idle: 10

3.启动类添加 @EnableCaching // 开启缓存

4. keyGenerator :key 的生成器。 key 和 keyGenerator 二选一使用

@Configuration
public class MyCacheConfig {
    @Bean("myKeyGenerator")
    public KeyGenerator keyGenerator(){
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                return method.getName()+"["+ Arrays.asList(params).toString() +"]";
            }
        };
    }
    
}

5.service实现

@Cacheable(cacheNames = "eo",key = "#id")
    public Integer getEo(int id) throws Exception{
        log.info("111");
        Thread.sleep(1000);
        log.info("id is {}",id);
        return id;
    }

    @Cacheable(cacheNames = "eo1",keyGenerator = "myKeyGenerator")
    public Integer getEo1(int id) throws Exception{
        log.info("222");
        Thread.sleep(1000);
        log.info("id is {}",id);
        return id;
    }

6.controller

    @GetMapping("/xx")
    public Integer xx(Integer id) throws Exception {
       return cacheService.getEo(id);
    }
    @GetMapping("/xx1")
    public Integer xx1(Integer id) throws Exception {
       return cacheService.getEo1(id);
    }

7.RedisConfig

 /**
     * 自定义缓存管理器
     */
    @Bean
    public RedisCacheManager cacheManager(RedisConnectionFactory factory) {
        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
        Set<String> cacheNames = new HashSet<>();
        cacheNames.add("eo");
        cacheNames.add("eo1");
        ConcurrentHashMap<String, RedisCacheConfiguration> configMap = new ConcurrentHashMap<>();
        configMap.put("eo", config.entryTtl(Duration.ofMinutes(1L)));
        configMap.put("eo1", config);

        //需要先初始化缓存名称,再初始化其它的配置。
        RedisCacheManager cacheManager = RedisCacheManager.builder(factory).initialCacheNames(cacheNames).withInitialCacheConfigurations(configMap).build();
        return cacheManager;
    }

8.运行结果

2022-05-13 15:10:49.818  INFO 344756 --- [nio-8080-exec-2] com.example.demo.cache.CacheService      : 111
2022-05-13 15:10:50.818  INFO 344756 --- [nio-8080-exec-2] com.example.demo.cache.CacheService      : id is 3
2022-05-13 15:12:03.241  INFO 344756 --- [nio-8080-exec-9] com.example.demo.cache.CacheService      : 111
2022-05-13 15:12:04.242  INFO 344756 --- [nio-8080-exec-9] com.example.demo.cache.CacheService      : id is 3
2022-05-13 15:17:33.073  INFO 344756 --- [nio-8080-exec-4] com.example.demo.cache.CacheService      : 111
2022-05-13 15:17:34.073  INFO 344756 --- [nio-8080-exec-4] com.example.demo.cache.CacheService      : id is 3
2022-05-13 15:18:01.530  INFO 344756 --- [nio-8080-exec-8] com.example.demo.cache.CacheService      : 222
2022-05-13 15:18:02.531  INFO 344756 --- [nio-8080-exec-8] com.example.demo.cache.CacheService      : id is 1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cacheable 过期设置 的相关文章

随机推荐

  • 万向锁的理解

    万向锁 万向锁这个概念其实还是不大好理解的 看了很多的博客 虽然看起来他们讲的很有道理 可还是想不通 希望我这篇文章能讲清楚 万向锁产生的根本原因是绕三个轴的旋转不是同时进行的 想象一下我们旋转矩阵的推导是不是绕三个轴的旋转矩阵乘起来得到的
  • 测试用例设计白皮书--测试用例设计综合策略

    测试用例设计白皮书 测试用例设计综合策略 Author Vince 来源 http blog csdn net vincetest 1 Myers提出了使用各种测试方法的综合策略 1 在任何情况下都必须使用边界值分析方法 经验表明用这种方法
  • 微信小程序-SOA架构(17年1月)

    微信小程序 顾名思义 它有两个方面的含义 重点在小 也就是不用安装就能使用的意思 另一个重点 它是应用程序 它和公众号绑定在一起使用 从用户角度去看 它是各种APP的替代品 有了它以后 不再需要安装APP 作为IT人员 更多的是从工程思维的
  • Snort搭建以及规则编写

    目录 Snort IDS Snort搭建 安装web服务 方便设置sonrt后期访问 Mysql安装 PHP安装 安装 Snort Snort配置 创建snort专用的用户和组 配置目录 配置规则 修改配置文件 规则编写 Snort IDS
  • QGIS二次开发02:交互动作实现

    地图交互动作就是通过鼠标操作与地图间的互动 动作包括按下 press 按键弹起 release 鼠标移动 move 双击等等 QGIS实现地图的交互主要是通过继承QgsMapTool这个类实现 目前集成了QgsMapToolZoom 拉框缩
  • 数据结构---堆的构建和堆排序(向下、向上调整算法)

    一 建堆 1 堆的概念及性质 如果有一个关键码的集合 K k0 k1 k2 kn 1 把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中 并满足 Ki lt K2 i 1 且 Ki lt K2 i 2 Ki gt K2 i 1 且
  • 七大排序知识点

    目录 1 稳定性 2 冒泡排序 3 插入排序 3 1 折半插入排序 4 希尔排序 5 选择排序 6 堆排序 7 快速排序 挖坑法 8 归并排序 9 海量数据的排序问题 1 稳定性 两个相等的数据 如果经过排序后 排序算法能保证其相对位置不发
  • JSON与MODEL互转

    HYBJSONModel h Json2ModelDemo Created by huangyibiao on 14 9 15 Copyright c 2014年 Home All rights reserved import
  • R语言-线性回归实例(包括所有源码)

    题目描述 目录 一 身高体重 1 身高和体重的散点图 先肉眼观察来判断使用什么模型 2 画出拟合后的线性函数与散点图背景对比 3 对该模型的分析 4 置信区间分析和假设检验 5 多图像分析 二 不良贷款 三 污染 1 以二氧化硫排放量 吨
  • (四)现代计算机系统的层次结构

    程序执行结果 不仅取决于算法 程序的编写 而且取决于语言处理系统 操作系统 ISA 微体系结构 不同计算机课程处于不同层次 必须将各层析关联起来解决问题 功能转换 上层是下层的抽象 下层时上层的实现 地位为上层提供支撑环境 计算机系统的不同
  • install chrome

    1 2 wget https dl google com linux direct google chrome stable current i386 deb 没试用过 3 4 wget https dl google com linux
  • ADS学习:Smith Chart Utility使用说明

    打开方式 原理图界面 Tools Smith Chart Utility 功能分区 1 菜单栏 2 工具栏 3 作图区 4 频率响应区
  • 【报告分享】完美日记品牌分析报告.pdf(附68页pdf全文下载链接)

    今天给大家分享的是上海语析信息咨询有限公司于2020年4月份发布的 完美日记品牌分析报告 pdf 该报告由上海交通大学海外教育学院中国商业发展研究所作为学术指导 报告共包含如下五大部分 1 完美日记品牌故事 2 完美日记营销分析 3 完美日
  • 苹果手机屏幕如何投射到win10?

    说起家庭娱乐 大多数人想到的一定是电脑 手机 亦或者是电视 其中每天陪伴的必定有手机 我们很少再使用电视去看影视作品 取而代之的是各大视频网站 比如腾讯 爱奇艺 优酷等 而不需再等候 黄金七点半 很多人一定会把会员在手机端登录 因此想在电脑
  • 川大计算机信息安全基础试题,信息安全概论考试试题..doc

    四川大学2014年春季软件工程研究生班考试试题 课程名称 信息安全概论 任课教师 琚生根 学生人数 印题份数 学号 姓名 考 试 须 知 四川大学学生参加由学校组织或由学校承办的各级各类考试 必须严格执行 四川大学考试工作管理办法 和 四川
  • 泛微E-Mobile 6.0远程命令执行漏洞

    前言 本次测试仅供学习使用 如若非法他用 与本文作者无关 需自行负责 漏洞描述 Weaver E Mobile是中国泛微科技 Weaver 公司的一个协同办公系统 E Mobile6最新版是上海泛微网络科技推出的一款手机办公应用 将企业微信
  • 纯 CSS 实现高度与宽度成比例的效果

    HTML p class image container img src xxx png p CSS p image container width 100 height 0 padding bottom 60 overflow hidde
  • docker 训练深度学习_Docker:把深度学习装进“口袋”

    熟悉深度学习开发框架的朋友都知道 caffe 的安装麻烦 耗时长 而且很容易因为电脑环境没有配置好导致错误 每次有新同事来 我们都要在他电脑上安装一遍 caffe 经常会因为电脑环境而不断报错 目前TensorFlow受到很多深度学习开发者
  • 阿里云oss视频上传及预览图汇总

    阿里云OSS视频上传的几种方式 1 Web端直传实践简介 https help aliyun com document detail 31923 html spm a2c4g 11186623 6 631 apBNnA 2 JavaScri
  • cacheable 过期设置

    1 增加pom依赖