展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > springboot缓存之redis整合的方法

springboot缓存之redis整合的方法

Redis Assistant
Redis Assistant

Redis Assistant 是一款为Redis设计的高效可视化管理与监控工具,提供多种操作模式,高效处理服务器数据。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

¥19
Windows/macOS/Linux 2026-08-22
正版软件 Windows macOS软件 Linux 数据库管理工具
立即下载

默认使用的是ConcurrentMapCacheManager的ConcurrentMapCache作为缓存组件。使用ConcurrentMap的时候,是将数据保存在ConcurrentMap当中的。实际在开发过程中,我们经常使用的,是一些缓存中间件的。比如我们经常使用的redis,memcache,包括我们使用的ehcache,等等,我们都是使用一些缓存中间件。我们之前讲解原理的时候,也发现了,springboot是支持很多的缓存配置的:如下图所示的:默认开始的配置的是:SimpleCacheConfi

本文目录

      默认使用的是ConcurrentMapCacheManager的ConcurrentMapCache作为缓存组件。

      使用ConcurrentMap的时候,是将数据保存在ConcurrentMap当中的。

      实际在开发过程中,我们经常使用的,是一些缓存中间件的。

      比如我们经常使用的redis,memcache,包括我们使用的ehcache,等等,我们都是使用一些缓存中间件。

      我们之前讲解原理的时候,也发现了,springboot是支持很多的缓存配置的:

      如下图所示的:

      springboot缓存之redis整合的方法

      默认开始的配置的是:SimpleCacheConfiguration。

      其他的缓存是在什么时候开启呢?

      我们可以ctrl+n搜索一下,这些配置类,然后进去看看他们的conditional条件:

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      这些都是表示,当你导入了相应的包的时候,这些配置才会是生效的哦。

      整合redis作为缓存

      如果有不会redis这个技术的同学,尚硅谷当中有周阳老师发布的redis系列的讲解视频。或者大家可以最快地访问redis的官方网站,来进行学习,redis.cn是redis学习的中文网。

      安装redis

      搜索redis镜像

      springboot缓存之redis整合的方法

      这个是连接国外的仓库,速度是比较慢的。

      我们推荐使用docker 中国。

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      docker pull registry.docker-cn.com/library/redis

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      启动redis镜像

      docker run -d -p 6379:6379 --name myredis [REPOSITORY]
      docker ps

      为了测试,打开redis的连接工具。

      redis desktop manager

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      测试redis常用的数据操作

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      redis操作list

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      redis的set操作

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      引入redis的starter

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      配置redis

      springboot缓存之redis整合的方法

      简单说下redis原理

      我们引入了redis的starter之后,redisAutoConfiguration就起作用了。

      springboot缓存之redis整合的方法

      这个RedisAutoConfiguration是给容器当中加入了两个组件:

      springboot缓存之redis整合的方法

      给容器中加入的组件,一个是叫做RedisTemplate,一个是叫做StringRedisTemplate,两个东西。

      这两个东西就是用来操作redis的。

      这就跟大家以前用的jdbcTemplate一样,用来操作数据库的东西。

      这就是spring用来简化操作redis的两个template,如果在程序当中想要用这两个东西,就自动注入就可以了。

      springboot缓存之redis整合的方法

      redis测试

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      redis操作list:

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      redis测试保存对象

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      这些看不懂的玩意,全部都是序列化的结果。

      redisTemplate默认的序列化规则

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      默认的序列化器,就是使用的JdkSerializationRedisSerializer。

      默认的序列化器,就是使用的JDK的序列化器。

      我们来切换成json的序列化器,就可以了。

      redis配置

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      在测试类当中,自动注入我们自己配置的redisTemplate。

      springboot缓存之redis整合的方法

      然后我们再次测试保存对象。

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      这就说明了,我们的序列化器修改成功了。

      这就说明白了,如果我们后面要保存对象的时候,我们经常是要修改序列化器的。

      springboot缓存之redis整合的方法

      测试缓存

      springboot缓存之redis整合的方法

      我们之前使用的是ConCurrentMap的缓存管理器的。
      这个缓存管理器,帮我们来创建出来缓存组件的。
      缓存组件来实际给缓存中,进行CRUD的工作的。

      现在我们引入了redis之后,会发生什么样的效果呢?
      我们还是在application.properties当中将debug=true,这样就可以将自动配置报告来打开。
      这样的时候,我们重新启动我们的程序,在控制台当中,我们去搜索一下。
      看看是哪一个自动配置类,是生效的呢?

      springboot缓存之redis整合的方法

      原来默认开启的是:SimpleCacheConfiguration的。

      现在我们引入了redis相关的starters之后,程序默认开启的是RedisCacheConfiguration了。

      springboot缓存之redis整合的方法

      启动程序,直接进行测试就可以了。

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      说明第一次查询的时候,是查询数据库了。

      第二次查询的时候,控制台是没有任何输出的,说明是查询了缓存了。

      缓存默认是只有redis开启的。

      那么肯定是在redis当中了。

      我们可以查看一下:

      springboot缓存之redis整合的方法

      这个说明一个问题,在k和v都是object的时候,默认保存对象的时候,利用序列化来保存的。我们是想要让redis自动保存为json的。

      我们应该怎么做呢?

      我们先来分析一下这些过程当中的原理。

      1、我们是引入了redis的starter,所以我们的cachemanager变为了rediscachemanager了,

      2、默认创建的rediscachemanager在操作我们的数据的时候,传入了一个redistemplate的东西。

      springboot缓存之redis整合的方法

      3、这个redistemplate是redisautoconfiguration帮我们创建的。这个redistemplate默认使用的序列化机制是jdkserializationredisserializer的。这个就是相当于,redis默认给我们防止的redisCacheManager还不太符合我们的要求的。

      我们怎么办呢?

      我们应该自定义CacheManager的。

      自定义redisCacheManager

      springboot缓存之redis整合的方法

      这个时候,我们再启动项目,来进行测试,这个时候,我们就可以看到redis当中的结果,是我们想要的了。

      springboot缓存之redis整合的方法

      韫秋下次面试的时候,就可以问那些想要来软件园的人,说,你知道redis starter保存对象的时候,redisTemplate默认的序列化规则是什么吗?

      如果我们在使用redis的过程中,我们想要修改默认的序列化规则,我们应该怎么做呢?

      我们可以自定义redisCacheManager,然后自定义redisTemplate,在redisTemplate当中传入json相关的序列化器的哦。

      springboot缓存之redis整合的方法

      遗留的小问题

      数据库

      我们在数据库当中的,department表当中,放进去一条数据:

      springboot缓存之redis整合的方法

      mapper

      我们写一个对应的department操作的mapper。

      springboot缓存之redis整合的方法

      service

      我们再写一个对应的service

      springboot缓存之redis整合的方法

      controller

      springboot缓存之redis整合的方法

      启动项目测试

      springboot缓存之redis整合的方法

      然后我们看看redis当中,是否是有数据的呢?

      springboot缓存之redis整合的方法

      我们看了,redis当中dept相关的数据,是有的。

      我们第二次来查询dept的时候,就应该走缓存redis了。

      但是我们第二次去查询的,时候,出现了下面的错误。

      错误

      springboot缓存之redis整合的方法

      上面报错的意思就是说,不能够去读取json的。

      因为是要把部门的json对象,转换成为员工的json对象,这是不可以的。

      这个就是因为,我们放置的redisCacheManager是操作员工的。

      springboot缓存之redis整合的方法

      所以,现在我们看到的这个效果,就是很神奇的哦。

      缓存的数据,能够存入到redis当中。

      但是我们第二次从缓存中查询的时候,就不能够反序列化回来了。

      原来就是,我们存的是dept的json的数据,我们的cachemanager,默认是用employee的template来操作redis的。

      这个东西只能够将employee的数据反序列化过来的。

      解决错误

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      这个时候,就等于有了2个redisCacheManager了,我们用哪个呢?

      我们在service当中,是可以指定的。

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      然后我们重启项目,结果是报错了:

      springboot缓存之redis整合的方法

      如果,我们是有多个cacheManager的话,我们一定是要把某一个cacheManager作为,我们的默认配置的缓存管理器的。

      比如,我们可以进行下面的操作,来修复这个启动报错的内容的呢:

      springboot缓存之redis整合的方法

      重新启动进行项目测试

      这个时候,看看,我们在进行第二次部门查询的时候,能不能够正常地,成功地,从redis当中反序列化地读取到,我们的部门信息呢?

      springboot缓存之redis整合的方法

      springboot缓存之redis整合的方法

      这个时候,我们就发现,不管是员工还是部门,我们都是可以从redis当中反序列化成功查询的。

      这个就是很完美的啦。

      编码的方式操作缓存

      前面我们说的,全部都是使用注解的方式,来给缓存当中,来放置数据的。

      但是,在开发当中,我们经常会,遇到这样的情况。

      就是,我们开发进行到某个阶段,我们是需要将一些数据,放到缓存当中的。

      我们是需要,使用编码的方式,来操作缓存的。

      比如我们在查询出来了部门的信息之后,就希望把这个信息,放入到redis当中。

      我们可以把部门的cacheManager注入进来。

      springboot缓存之redis整合的方法

      然后我们在编码的过程中,可以通过操作这个cacheManager来获取缓存,

      然后,再操作缓存组件,来对数据进行增删改查。

      springboot缓存之redis整合的方法

      我们对上面的代码,启动项目进行测试,发现是可以的,是成功地给redis当中放进去了数据的:

      springboot缓存之redis整合的方法

      本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
      作者最新文章
      编程开发
      相关文章 更多
      精品专题 更多
      装机必备

      正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

      Windows

      正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

      PDF教程

      正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

      macOS软件

      正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

      IOS软件

      正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

      AI

      正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

      Mac软件 更多
      Aperty macOS版
      Aperty macOS版

      Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

      火山引擎 网页版
      火山引擎 网页版

      火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

      立刻MV 网页版
      立刻MV 网页版

      立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

      蛙蛙写作 网页版
      蛙蛙写作 网页版

      蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

      讯飞智作 网页版
      讯飞智作 网页版

      讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

      超级简历WonderCV 网页版
      超级简历WonderCV 网页版

      超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

      音述AI 网页版
      音述AI 网页版

      音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

      AionClaw macOS版
      AionClaw macOS版

      AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

      Loomy macOS版
      Loomy macOS版

      Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

      AirBuddy 3 macOS版
      AirBuddy 3 macOS版

      AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

      AirServer macOS版
      AirServer macOS版

      AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

      AnyDesk macOS版
      AnyDesk macOS版

      AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

      WINDOWS 更多
      讯飞绘文 网页版
      讯飞绘文 网页版

      讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

      Maya(Autodesk Maya) Windows版
      Maya(Autodesk Maya) Windows版

      Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

      Aperty Windows版
      Aperty Windows版

      Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

      火山引擎 网页版
      火山引擎 网页版

      火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

      立刻MV 网页版
      立刻MV 网页版

      立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

      蛙蛙写作 网页版
      蛙蛙写作 网页版

      蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

      讯飞智作 网页版
      讯飞智作 网页版

      讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

      超级简历WonderCV 网页版
      超级简历WonderCV 网页版

      超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

      音述AI 网页版
      音述AI 网页版

      音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

      AionClaw Windows版
      AionClaw Windows版

      AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

      Loomy Windows版
      Loomy Windows版

      Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

      AirServer Windows版
      AirServer Windows版

      AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

      即将离开本站
      您即将前往第三方网站,请确认是否继续?