SpringBoot通过@Cacheable实现redis缓存机制

2023-11-18

SpringBoot通过注解实现redis缓存机制

  1. @Cacheable 查询
  2. @CachePut 修改
  3. @CacheEvict 删除
    下面展示一些 内联代码片
@Cacheable 查询
// An highlighted block
//key:这边以dto类中的部门id 作为键 并加上一段字符串 利于后面很好的维护代码
 @Cacheable(value = "getSchoolById", key = " #userDto.getDepartmentId() +'getFunctionTreeValue' ")
    public String redis(UserDto userDto) {
        Department byId = departmentMapper.getById(userDto.getDepartmentId());
        log.info("访问了数据库");
        return ResultInfo.success(byId.getDepartmentName());
    }

实现效果:
第一次 去redis查询 查不到 去数据库查询 这时会在日志中打印 == 访问了数据库== 第二次访问就会通过key (如果你两次都是同一个部门id) 就会直接去redis 拿 后台也不会打印日志

@CachePut 修改
//同理也是需要用同样的key
@Cacheable(value = "getSchoolById", key = " #userDto.getDepartmentId() +'getFunctionTreeValue' ")
    public ResultInfo updateRedis(UserDto userDto) {
        Department department = new Department();
        department.setId(aiUserImportPhotoDto.getDepartmentId());
        department.setDepartmentName(aiUserImportPhotoDto.getStr());
        departmentMapper.updateByIdNoNull(department);
        log.info("访问了数据库");
        return ResultInfo.success(department.getDepartmentName());
    }

注意:返回结果必须是一样的 因为redis 的值 就是你注解加的方法的返回值


CacheEvict 删除 同理
后续会有更新 过期时间的设置

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

SpringBoot通过@Cacheable实现redis缓存机制 的相关文章

  • 通过 StackExchange.Redis 连接到 Redis Servier

    我尝试使用以下方法制作一个测试项目Redis https redis io服务器 通过 Virtual Box 安装在 Linux Ubuntu 虚拟机上 Linux 机器通过 Virtual Box 的桥接适配器与本地网络连接 Virtu
  • 在 Kubernetes/Openshift 中将客户端-服务器流量保持在同一区域的最佳方法?

    我们运行兼容 Kubernetes OKD 3 11 的本地 私有云集群 其中后端应用程序与用作缓存和 K V 存储的低延迟 Redis 数据库进行通信 新的架构设计将在两个地理上分布的数据中心 区域 之间平均划分工作节点 我们可以假设节点
  • 在 sidekiq 上配置 redis 身份验证

    我想我错过了一些东西 因为我在文档中找不到如何编写 redis 实例的用户名和密码以与 sidekiq 一起使用 有没有办法做到这一点 或者是通过 ENV 变量 Sidekiq 将无法识别的 Redis 选项直接传递给 Redis 驱动程序
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • 使用 Redis 命令 incr 和 expire 时的竞争条件

    根据redis文档 http redis io commands incr http redis io commands incr 在段落模式 速率限制器 2 较短的版本代码 value INCR ip IF value 1 THEN EX
  • Node Js:Redis 作业在完成其任务后未完成

    希望你们做得很好 我在我的 Nodejs 项目中实现了 BullMQ Bull 的下一个主要版本 来安排发送电子邮件的作业 例如 发送忘记密码请求的电子邮件 所以 我编写了如下所示的代码 用户服务 await resetPasswordJo
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • Spring Data JPA Redis:无法编写基于自定义方法的查询

    我已经使用 Redis 配置了 Spring Data JPA 并使用RedisRepositorieswith 提供了类似的方法find findAll 所有这些方法似乎都工作得很好 但我无法编写我的自定义方法 RedisEntity f
  • 想要在后台不间断地运行redis-server

    我已经下载了 redis 2 6 16 tar gz 文件并安装成功 安装后我运行 src redis server 它工作正常 但我不想每次都手动运行 src redis server 而是希望 redis server 作为后台进程持续
  • Scala 使用的 Redis 客户端库建议

    我正在计划使用 Scala 中的 Redis 实例进行一些工作 并正在寻找有关使用哪些客户端库的建议 理想情况下 如果存在一个好的库 我希望有一个为 Scala 而不是 Java 设计的库 但如果现在这是更好的方法 那么仅使用 Java 客
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • 集合成员的 TTL

    Redis 是否可以不为特定键而是为集合的成员设置 TTL 生存时间 我正在使用 Redis 文档提出的标签结构 数据是简单的键值对 标签是包含与每个标签对应的键的集合 例如 gt SETEX id id 1 100 Lorem ipsum
  • 检查 Redis 列表中是否已存在某个值

    我想知道是否有办法检查 redis 列表中是否已存在某个键 我无法使用集合 因为我不想强制唯一性 但我确实希望能够检查字符串是否确实存在 Thanks 您的选择如下 Using LREM如果发现则更换它 维护一个单独的SET与您的LIST
  • 无法使用 ASP.NET 会话状态提供程序连接到 Redis 服务器

    一段时间以来 我一直在尝试用 Redis 替换 ASP NET Session 多个小时与适用于 Redis 的 Microsoft ASP NET 会话状态提供程序 http blogs msdn com b webdev archive
  • 在 Rails 应用程序上将 HASH 保存到 Redis

    我刚刚开始使用 Redis 和 Rails 所以这可能是一个愚蠢的问题 我试图将哈希值保存到 Redis 服务器 但是当我检索它时 它只是一个字符串 IE hash field gt value field2 gt value2 redis
  • JedisPoolConfig 不可分配给 GenericObjectPoolConfig

    我有一个基于 Spring 的 Java Web 应用程序托管在 Heroku 上 我正在尝试使用 Redis 实现来利用 Spring 缓存抽象 当服务器启动时 我收到一条错误消息 Type redis clients jedis Jed
  • 具有匹配模式的 ioredis 密钥

    我想用键匹配模式 LOGIN 搜索 Redis 数据库 我在我的应用程序中使用 ioredis 昨天我搜索了整个网络 我得到了一些执行这项工作的选项 如下所示 KEYS 扫描流 Issue import Redis from ioredis
  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red

随机推荐

  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Linux磁盘管理

    lsblk 使用lsblk命令可以以tree的形式展示所有设备的信息 lsblk命令的英文是 list block 即用于列出所有可用块设备的信息 而且还能显示他们之间的依赖关系 但是它不会列出RAM盘的信息 使用者权限 所有用户 语法格式
  • HCNP路由交换笔记

    路由基础 路由 在报文转发的过程中沿途的网络设备收到该报文后 会根据其携带的目的IP地址来判断如何转发这个报文 最终将报文从恰当的接口转发出去 当一台路由器收到一个IP报文后 会在自己的路由器中执行路由查询 寻找匹配报文的目的IP地址的路由
  • 如何更改vue项目中的小图标

    1 先将icon图标放入static文件夹中 2 然后在index html文件中引入 3 保存后刷新浏览器就可以显示图标了
  • 如何开启esxi主机的ssh远程连接

    环境 esxi主机 说明 esxi主机默认ssh是不开启的 需要人工手动启动 也可以设置同esxi主机一起开机启动 1 找到esxi主机 点击 配置 那里 再点击右边的属性 如图所示 2 在 服务属性 界面中 可以看到很多服务 找到 SSH
  • navicat mysql data transfer_Navicat 导出导入数据库的实现方法

    描述 把mysql数据库中的一个数据库导出 备份 或者传输给别人 导出 使用Navicat连接到mysql 然后选中你要导出的数据库 右键 选择转储SQL文件 命名为数据名 sql 保存到本地中即可 如下图 选择转储SQL文件 保存到本地
  • Python中configparser的使用

    1 configparser介绍 configparser是python自带的配置参数解析器 可以用于解析 ini文件中的配置参数 ini文件中由sections 节点 key value组成 2 ini文件配置说明 DEFAULT key
  • 华为OD机试 - 用户调度问题(Java)

    题目描述 在通信系统中 一个常见的问题是对用户进行不同策略的调度 会得到不同的系统消耗和性能 假设当前有n个待串行调度用户 每个用户可以使用A B C三种不同的调度策略 不同的策略会消耗不同的系统资源 请你根据如下规则进行用户调度 并返回总
  • 数字化时代-17:从中国历年五年规划后的GDP增长看中美大碰撞的必然

    前言 本文通过观察中国历年五年规划后的GDP增长与美国同期GDP的增长的关系 展示中美大碰撞的必然性 这是中国崛起路上必然要经过的一道坎 无法回避 能做的就是降低它的负面影响 我们先看一下日美大碰撞 在上图中 上个世纪80年代 日本经济飞速
  • 2003服务器iis网站在哪,【搭建网站】Windows2003系统iis搭建网站教程

    1 开始 管理工具 internet信息服务 iis 管理右键添加到桌面快捷方式 然后打开如图 2 右键点击网站 选择新建 网站 3 输入网址描述 并下一步 4 填写网址相关信息 网站ip地址 可以选择全部未分配也选择本机的ip地址 建议使
  • (已上岸)记一次Java后台实习面试问题——附答案

    2020年6月5日 某互联网公司的 Java开发实习生 技术面二面 面试官 自我介绍 项目提了一嘴 JDK 1 8 集合源码 TCP细节 HTTP和HTTPS redis数据结构和常用方法 消息队列基础 Spring SpringCloud
  • mybatis-plus代码生成器一键生成代码

    第一步 添加依赖
  • AI视频成工具D-ID介绍(AI数字人常用工具)

    Studio D id 一个AI视频成工具 用AI创作的数字人 输入人物关键词就可一键生成人物 上传要说的文本或音频则可以开口说话了 关于AI语音 有很多选项可供选择 目前 Studio D id支持多达66种语言 然后 您可以使用普通话
  • 【读点论文】ViTGAN: Training GANs with Vision Transformers 将视觉transformer和gan结合起来

    ViTGAN Training GANs with Vision Transformers Abstract 最近 Vision Transformers vits 在图像识别方面表现出了具有竞争力的性能 需要较少的视觉特定的归纳偏差 在本
  • ubuntu中USB摄像头gstreamer方式图像采集、显示、录像及回放功能设计——(1)

    文章目录 背景 一 USB摄像头图像格式 1 安装v4l2 ctl库 2 找到挂载节点 3 图像格式分析 二 Gstreamer 简介 三 Gstreamer 命令行 1 显示MJPG格式 1280 720 30fps视频 2 显示YUV格
  • Android studio 查找所有字符串

    查找程序中所有直接使用的硬编码字符串 String 全局查找 Ctrl H 输入 u4e00 u9fa5 并打钩Regular Expression 正则表达式
  • 语音识别-3

    https zhuanlan zhihu com p 33464788 基于CTC的语音识别基础与实现 首先明确语音识别的任务是怎样的 输入input是音频wav文件 保存的一般是经过抽样量化编码之后数字信号 也就是每个样点的值 即我们经常
  • Python人工智能需要学什么?Python人工智能有什么用

    python人工智能是python开发中最火也是学习要求最高 薪资最高的方向 所以很多的小伙伴都想知道学习python人工智能要学一些什么 python人工智能有什么用 这篇文章会介绍python人工智能的全学习路线和作用 一起看看吧 一
  • 获取京东cookie简单暴力获取京东CK

    获取京东cookie简单暴力获取京东CK 具有时效性 太久没玩可能以失效 注意 用浏览器请使用隐身窗口 如果多个账号 一定不要点退出登录 直接关闭网页 清除浏览器cookie数据 隐身窗口无需这一步 重新进入网页登录下一个账号 退出会导致刚
  • SpringBoot通过@Cacheable实现redis缓存机制

    SpringBoot通过注解实现redis缓存机制 Cacheable 查询 CachePut 修改 CacheEvict 删除 下面展示一些 内联代码片 Cacheable 查询 An highlighted block key 这边以d