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缓存机制 的相关文章

  • 如何将node.js管道传输到redis?

    我有很多数据要插入 SET INCR 到redis DB 所以我正在寻找pipeline http redis io topics pipelining 质量插入 http redis io topics mass insert通过node
  • 有没有办法让特定的key在集群模式下定位到特定的redis实例上?

    我想让我的多锁位于不同的redis实例上 我发现redission可以指定一个实例来执行命令 但是如果该命令与key相关 则指定的实例会将命令传输到另一个实例 你能给我一些建议吗 你可以 但这并不是微不足道的 首先 Redis 在键中使用大
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • 如何使redis中的“HSET”子键“过期”?

    我需要使 Redis 哈希中所有超过 1 个月的密钥过期 这不可能 https github com antirez redis issues 167 issuecomment 2559040 为了保持 Redis 简单 https git
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • Scala 使用的 Redis 客户端库建议

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

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • 在 Spring 4 中干掉通用的 RedisTemplate

    我读到你可以拥有 Autowired从 Spring 4 开始泛型 这太棒了 我有一个摘要RedisService我想参加的课程 Autowired一个通用的 RestTemplate 如下所示 public abstract class
  • 如何延长 django-redis 中的缓存 ttl(生存时间)?

    我正在使用 django 1 5 4 和 django redis 3 7 1 我想延长缓存的 ttl 生存时间 当我取回它时 这是示例代码 from django core cache import cache foo cache get
  • ServiceStack.Redis:无法连接:sPort:

    我经常得到 ServiceStack Redis 无法连接 sPort 0 或 ServiceStack Redis 无法连接 sPort 50071 或其他端口号 当我们的网站比较繁忙时 就会出现这种情况 Redis 本身看起来很好 CP
  • Redis 中存储整数和字符串的区别

    这两个命令有什么区别吗 LPUSH myset 123 LPUSH myset 123 我想存储大约 500 万个整数 并且我想以最有效的方式做到这一点 不 没有什么区别 两者都存储为字符串 从redis io http redis io
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • 使用 Redis 中的键

    我是 Redis 和键值数据库的新手 你能告诉我如何在redis中正确实现这种关系方法吗 我有一个关系表 其中两个键对应一个值 master id slave id 价值 Example 主站 ID 从属ID 价值 1 1 值1 2 1 值
  • 批量将Dictionary中的数据设置到Redis中

    我正在使用 StackExchange Redis DB 插入键值对字典Batch如下 private static StackExchange Redis IDatabase database public void SetAll
  • 使用通配符查找键

    我已经使用分号保存了数据 redis gt keys party 1 party congress president 2 party bjp president 3 party bjp 4 party sena 是否有任何命令可以列出所有
  • JedisPoolConfig 不可分配给 GenericObjectPoolConfig

    我有一个基于 Spring 的 Java Web 应用程序托管在 Heroku 上 我正在尝试使用 Redis 实现来利用 Spring 缓存抽象 当服务器启动时 我收到一条错误消息 Type redis clients jedis Jed
  • 如何高效地将数十亿数据插入Redis?

    我有大约 20 亿个键值对 我想将它们有效地加载到 Redis 中 我目前正在使用 Python 并使用 Pipe 如redis py https redis py readthedocs io en latest redis Redis
  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red
  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso

随机推荐

  • 【华为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