springboot整合redis 使用缓存注解

2023-10-27

1.启动类标明@EnableCaching

@SpringBootApplication
@MapperScan("com.jx.luckyDraw.mapper")
@EnableCaching
public class LuckyDrawApplication {

    public static void main(String[] args) {
        SpringApplication.run(LuckyDrawApplication.class, args);
    }



}

2.常用注解的种类
@Cacheable
@CachePut
@CacheEvict

2.1 作用
@Cacheable:在方法执行前判断对应缓存是否存在,如果存在直接返回缓存结果,否者执行方法将结果缓存,适用于查询类。

@CachePut:与@Cacheable不同的是@CachePut一定会执行方法,并将方法的返回值更新到缓存,适用于更新,插入。

@CacheEvict:清除缓存。

2.2 例子

@Cacheable

  @Cacheable(cacheNames = "drawDetails", key = "#userId + ':' + #batchId", unless = "#result ==null")
    public DrawDetailPO getDrawDetails(String userId, Long batchId) {

当getDrawDetails方法的返回值不为null时,将方法的执行结果按照#userId + ‘:’ + #batchId 的方式缓存到redis中。

redis中键名为:

drawDetails::81466011bd2a7cf40502a08827038390:1490935513660657664

@CacheEvict

 @CacheEvict(value = {"drawBatch", "drawDetails"}, allEntries = true, condition = "#result > 0")
    @Override
    public int newDrawBatchInfo(Integer batchCount) {

当newDrawBatchInfo方法的返回值大于0时,将命名空间为drawBatch" 或者drawDetails的键全部删除。

allEntries 默认为false,当有多个键时必须配置true才能删除。

在这种没指定key,使用默认keyGenerator 时,必须使用allEntries =true才能删除

  @Cacheable(cacheNames = "employeeSelectList", unless = "#result ==null")
    public List<HrmEmployeeSelectVO> querySelectList(HrmEmployeeSelectVO employeeSelectVO) {
        return employeeMapper.querySelectList(employeeSelectVO);
    }
@CacheEvict(value = "employeeSelectList",allEntries = true,condition = "#result = true ")

beforeInvocation 属性:是否在方法执行前删除,默认为false。

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

springboot整合redis 使用缓存注解 的相关文章

  • 如何清理redis中不活跃的玩家?

    我正在制作一个使用 redis 来存储游戏状态的游戏 它可以很好地跟踪位置和玩家 但我没有一个好的方法来清理不活跃的玩家 每当玩家移动时 这是一个半慢速移动游戏 想想每秒 1 5 帧 我就会用新位置更新哈希并删除旧位置键 跟踪活跃玩家的最佳
  • 如何在redis中创建自己的数据库?

    There are 0 to 15 databases in redis 我想使用 redis cli 创建自己的数据库 有什么命令可以实现吗 Redis 数据库并不等同于 MySQL 等 DBMS 中的数据库名称 这是一种为键创建隔离和命
  • socket.io redis 和内存泄漏

    我的socket io版本是 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protection 我在 Windows 上 在某些地方 我看到问题已得到解决 我
  • 使用brew在MacOSx上安装Redis JSON

    如何使用brew 在 macOSx 上安装 RedisJSON 如何在不编译redis的情况下启用redis上的模块 我不想使用 docker 客户端 Redis Stack 可能是最简单的方法 它不仅仅是 RedisJSON 还包括 Re
  • Spring RedisTemplate:8次调用后方法键挂起

    我使用 Spring RedisTemplate spring data redis 1 7 1 与 Redis 进行通信 我需要通过正则表达式获取然后删除键 例如 context user1 我用的方法 RedisTemplate key
  • python 3.5 中的 json.loads 和 Redis

    我使用 json dumps 创建了一个 JSON 对象 并在 Redis 列表中将其 RPUSH ed 当使用 LRANGE redis lrange 返回 JSON 时 我收到一个二进制字符串 b si 00 ff 所以 json lo
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • redis集群不断打印日志WSA_IO_PENDING

    当我启动redis集群的所有redis服务器时 所有这些服务器不断打印类似WSA IO PENDING clusterWriteDone的日志 9956 03 Feb 18 17 25 044 WSA IO PENDING writing
  • 如何在节点redis客户端上设置读取超时?

    在 github 上我没有看到读取超时的选项 https github com NodeRedis node redis https github com NodeRedis node redis There s connect timeo
  • 是否有可嵌入的 Java 替代 Redis?

    根据这个线程 https stackoverflow com questions 3047010 best redis library for java 如果我想从Java中使用Redis Jedis是最好的选择 然而 我想知道是否有任何库
  • redis-cli 重定向到 127.0.0.1

    我在PC1上启动Redis集群 然后在PC2上连接它 当需要重定向到另一个集群节点时 它会显示Redirected to slot 7785 located at 127 0 0 1 但应该显示Redirected to slot 7785
  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • Spring Data JPA Redis:无法编写基于自定义方法的查询

    我已经使用 Redis 配置了 Spring Data JPA 并使用RedisRepositorieswith 提供了类似的方法find findAll 所有这些方法似乎都工作得很好 但我无法编写我的自定义方法 RedisEntity f
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis
  • Amazon Elasticache Redis 集群 - 无法获取端点

    我需要获取 Amazon Elasticache 中 Redis 集群的终端节点 以下代码适用于 Memcached 集群 但不适用于 Redis import com amazonaws auth AWSCredentials impor
  • Spring Redis删除不删除key

    我正在尝试删除一个 Redis 键 但由于某种原因它没有删除 但也没有抛出异常 这是我要删除的代码 import com example service CustomerService import com example model Cu
  • 如何使用 Redis 自动删除与模式匹配的键

    在我的 Redis DB 中 我有很多prefix

随机推荐

  • JS-JS代码插入位置

    一 HTML 页面的 部分中 由于 HTML 文档是由浏览器从上到下依次载入的 将 JavaScript 代码放置于 标签之间 可以确保在需要使用脚本之前 它已经被载入了 二 HTML 页面的 部分中 设想如下一种情况 我们有一段 Java
  • Jackson对象转化错误之org.joda.money.Money

    由于org joda money Money没有默认的构造方法 使用默认的序列化和反序列化是无法在json串和对象之间转换的 jackson提供了一个可以指定序列化发序列话的方法 com fasterxml jackson databind
  • 安装python遇到错误_安装Python时遇到如下问题,解决方案

    sudo apt get install python pip 正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 python pip 已经是最新的版本了 升级了0 个软件包 新安装了 0 个软件包 要卸载 0
  • 入门-《Zbrush 自学宝典》适合基础学员【软件精通】

    入门 Zbrush 自学宝典 适合基础学员 软件精通 ZBrush自学宝典合集 包含了零基础萌新需要的软件基础 到必备的人体解刨知识 还有多达十几个的实战案例展示 可以说是一本名副其实的zbrush自学大全 入门 Zbrush 自学宝典 适
  • Unity检测点击到UI上

    using UnityEngine EventSystems using UnityEngine using System Collections Generic
  • vue跳转注册时Unhandled promise rejection undefined

    这里写自定义目录标题 vue跳转注册时Unhandled promise rejection undefined vue跳转注册时Unhandled promise rejection undefined 挂载路由导航守卫 router b
  • 刷脸支付会员积分卡券打造完整商业闭环

    刷脸支付成为新的支付趋势的原因 缓解对外部媒介的过渡依赖 移动支付的过程需要手机 而很多消费者会遇到手机没电或者忘记携带手机的情况 而刷脸支付不需要手机 仅通过人脸识别就可以完成付款 随着支付宝 微信 央行都推出了自己的刷脸支付设备 刷脸支
  • VS2017调节字体大小快捷键

    快捷键 Ctrl Shift gt 调大 Ctrl Shift lt 调小 Ctrl 鼠标滚动 向上调大 向下调小 笔记本触屏放大 就和在手机上放大图片一样 也可以去工具 gt 选项 gt 环境 gt 字体与颜色里面直接选择字号调整
  • 【廖雪峰python入门笔记】list_创建

    1 list 列表 list 1 是Python内置的一种数据类型 2 是一种有序的集合 3 可以随时添加和删除其中的元素 比如 列出班里所有同学的名字 就可以用一个list表示 Michael Bob Tracy list是数学意义上的有
  • GraalVM原生编译,Swing取色调色工具

    Graalvm 安装和静态编译 今天使用GraalVM把以前写的一个Swing小工具ColorCat转成原生应用 使用GraalVM转成原生应用后 可以脱离JVM CPU和内存的占用率是降低了的 性能是相对提升了不少 GraalVM编译步骤
  • SVN提交代码评审

    1 前言 在公司提交代码时 需要发给上级主管评审 如何让评审的主管能快速清晰的知道你的修改点是很重要也是很基础的要求 有的是用用脚本来产生差异文件的文件夹 但其实SVN本身就有命令列出当前修改和版本的差异点 2 命令 svn commit
  • 登录页面中记住密码操作的实现

    1 思路 访问 前端login jsp gt 后台 如果上次用户选择勾选记住密码 自动填充账号和密码 否则 不填 如何判断上次是否记住密码 第一次登录成功 去判断是否需要记住密码 如果需要记住密码 则往浏览器写cookie 否则 删除coo
  • Swift Property ‘self.xxx‘ not initialized at super.init call

    Swift重写父类的init方法时 报了如下错误 Property self xxx not initialized at super init call 大概意思是在调用父类init方法前 需要给属性赋值 报错代码 required in
  • QT 自定义widget 背景图片设置

    在自定义widget中 通过setSheetStyle 设置的背景图片没有效果 必须加一层QFrame 定义一个QFrame 设置QFrame的 sheetstyle 同时设置 widget setAutoFillBackground tr
  • 使用python-docx在文档中插入图片

    在文档中添加图片的方法如下 from docx import Document from docx shared import Inches Cm document Document document add heading 大标题 0 新
  • VUE 中let that = this 或者 var that = this 有什么意义

    在vue 开发过程中我们经常会发现 let that this 这样写有什么好处呢 首先要理解this 下面简述两点 1 this 永远指向一个对象 2 this 的指向取决于函数调用的位置 首先 this 指向的是一个对象 这个好理解 难
  • 回归分析结果表格怎么填_Excel回归分析结果的详细阐释

    内容来自用户 jasonboy95 利用Excel的数据分析进行回归 可以得到一系列的统计参量 下面以连续10年积雪深度和灌e69da5e887aa3231313335323631343130323136353331333433646365
  • 永年二中2021高考成绩查询,喜讯丨邯郸市永年二中今年高考成绩再创历史新高...

    很多朋友在关注 喜讯丨邯郸市永年二中今年高考成绩再创历史新高 下面带大家一起来阅读吧 近10年高考县状元 2004年全县理科状元 王延涛 南沿村镇西王庄村 七中 2005年全县文科状元 刘 鑫 广府镇西街 九中 全县理科状元 杨佩勋 东杨庄
  • 帮我写一下目标检测的代码

    您好 我可以为您提供以下基本的目标检测代码 import cv2 读取图像 img cv2 imread image jpg 创建一个检测器 detector cv2 CascadeClassifier detector xml 检测目标
  • springboot整合redis 使用缓存注解

    1 启动类标明 EnableCaching SpringBootApplication MapperScan com jx luckyDraw mapper EnableCaching public class LuckyDrawAppli