【十次方】Springboot中使用Redis做缓存

article/2025/10/26 16:05:34

Spring全家桶+分布式微服务(十次方项目学习)

十次方学习交流qq群:672373393

今天学习十次方项目,其中说到了如何在springboot框架中如何使用redis缓存,写篇博客记录一下。

为什么要用缓存?

在我们平时开发的项目中,其实是比较忌讳频繁的与数据库打交道的。所以我们需要用到缓存,来避开与数据库的多次交互。获取重复的数据我们只需要第一次查询数据,然后将数据存入redis缓存中,之后再次获取就直接通过缓存而避开与数据库交互。

 

如何使用

1.导入redis配置

我们需要在pom.xml文件中加入redis配置

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

然后在application.yml文件中配置redis连接地址

2.代码使用

接下来的使用就比较简单了,在service中添加RedisTemplate实例

	@Autowiredprivate RedisTemplate redisTemplate;

这里我们优化一下findById根据id查询方法的效率

        /*** 根据ID查询实体* @param id* @return*/public Article findById(String id) {//先从缓存中查询当前对象Article article = (Article) redisTemplate.opsForValue().get("article"+id);//如果没有if(article==null){//从数据库中取article = articleDao.findById(id).get();//存入缓存中redisTemplate.opsForValue().set("article"+id,article);}return article;}

但是需要注意一点,如果我们数据库中数据修改了,那边对应的缓存中的数据也需要修改,不然读取的将一直是第一次存入缓存中的数据。所以我们对应的需要对 修改 删除方法进行改动

	/*** 修改* @param article*/public void update(Article article) {redisTemplate.delete("article"+article.getId());articleDao.save(article);}/*** 删除* @param id*/public void deleteById(String id) {redisTemplate.delete("article"+id);articleDao.deleteById(id);}

最后简单介绍一下RedisTemplate对象常用的几个方法:

stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间
stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val
stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作
stringRedisTemplate.boundValueOps("test").increment(1);//val +1
stringRedisTemplate.getExpire("test")//根据key获取过期时间
stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位
stringRedisTemplate.delete("test");//根据key删除缓存
stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值
stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间
stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合
stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据
stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合

 


http://chatgpt.dhexx.cn/article/2l5J9aWm.shtml

相关文章

python开三次方_python 三次方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符成员运算符 身份运算符 运算符优先级算术运算符 + — * % **…

十次方微服务全套课程介绍

连接资源地址 一&#xff1a;课程简介 《十次方社交系统》采用目前主流的微服务系统架构SpringBootSpringCloudSpringData进行开发&#xff0c;前端技术采用Vue.js。系统整体分为三大部分&#xff1a;微服务、网站前台、网站管理后台。功能模块包括文章、问答、招聘、活动、吐…

【JVM】jvm简介特点和jvm在整个计算机框架中的位置

本文目录 一、JVM概念二、JVM介绍三、JVM特点四、JVM的位置一、JVM概念 什么是JVM? JVM(Java Virtual Machine的缩写)一般指java虚拟机。 Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之…

JVM - 堆

# JVM - 堆 JDK版本&#xff1a;1.8 # 1、堆的核心概述 堆内存针对于JVM进程是唯一的&#xff0c;也就是一个进程只有一个JVM&#xff0c;一个进程下会存在多个线程&#xff0c;这些线程共享同一个堆空间&#xff0c;其中还可以被划分为线程私有的缓冲区(Thread Local Allocat…

Java虚拟机 - JVM是什么?

为什么要有JVM&#xff1f; JVM就是Java运行虚拟机&#xff0c;那么虚拟机又分为系统虚拟机和程序虚拟机&#xff0c;而JVM是属于程序虚拟机&#xff0c;所以不要看到是虚拟机就误认为JVM是系统虚拟机。 JVM是帮助Java程序开发者在开发过程中无需考虑无用的资源需要进行回收&a…

jvm虚拟机-什么是jvm

最近看了一段时间jdk源码&#xff0c;在看源码的过程中对数据的存储不是很清楚&#xff0c;当时就在想数据到底存在哪里去了&#xff1f;以前只是看博客什么的对jvm有一个大概的了解&#xff0c;但是没有深入研究。经过一段时间的研究<<深入理解java虚拟机后>>&…

Jvm系列-Jvm概述(一)

目录 1&#xff0c;什么是JVM&#xff1f; 2&#xff0c;JVM跨平台及原理 3&#xff0c;JVM的分类 4&#xff0c;JVM的位置 5&#xff0c;JVM的体系结构 6&#xff0c;Java代码的执行流程 7&#xff0c;JVM的架构模型 8&#xff0c;JVM的生命周期 9&#xff0c;三大商…

JVM的组成

Java Virtual Machine虚拟机是一种抽象化的计算机&#xff0c;通过在实际的计算机上仿真模拟各种计算机功能来实现&#xff0c;java虚拟机有自己完善的硬件架构&#xff0c;如处理器&#xff0c;堆栈&#xff0c;寄存器等&#xff0c;还具有相应的指令系统 一次编译&#xff…

JVM是什么

什么是JVM&#xff1f; 1、JVM是Java虚拟机&#xff0c;是用来执行Java字节码&#xff08;二进制的形式&#xff09;的虚拟机计算机。2、JVM是运行在操作系统之上的&#xff0c;与硬件没有任何关系。 Java的跨平台原理 跨平台&#xff1a;由Java编写的程序可以在不同的操作…

jdk、jre、jvm是什么?

JDK简介 JDK是Java Development Kit的缩写&#xff0c;是Java的开发工具包。 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心&#xff0c;包括了Java运行环境&#xff08;JRE&#xff09;&#xff0c;Java工具&#xff08;javac/java/jdb等&#xff0…

JVM运行原理详解

1.JVM简析&#xff1a; 作为一名Java使用者&#xff0c;掌握JVM的体系结构也是很有必要的。 说起Java&#xff0c;我们首先想到的是Java编程语言&#xff0c;然而事实上&#xff0c;Java是一种技术&#xff0c;它由四方面组成&#xff1a;Java编程语言、Java类文件格式、Java虚…

JAVA—JVM详解

JAVA—JVM详解 一、JVM 1、什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言…

什么是JVM?

说明&#xff1a;做java开发的几乎都知道jvm这个名词&#xff0c;但是由于jvm对实际的简单开发的来说关联的还是不多&#xff0c;一般工作个一两年&#xff08;当然不包括爱学习的及专门做性能优化的什么的&#xff09;&#xff0c;很少有人能很好的去学习及理解什么是jvm&…

JVM介绍(*)

一.什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组…

JVM01_概述、跨平台原理、分类、三大商业虚拟机

文章目录 ①. 什么是JVM&#xff1f;②. Java的跨平台及原理③. JVM的分类④. 三大商业虚拟机 ①. 什么是JVM&#xff1f; ①. JVM 是 java虚拟机&#xff0c;是用来执行java字节码(二进制的形式)的虚拟计算机 ②. jvm是运行在操作系统之上的&#xff0c;与硬件没有任何关系 …

什么是JVM

JVM 即 Java Virtual Machine&#xff0c;中文名为 Java虚拟机。 一般情况下 C/C 程序&#xff0c;编译成二进制文件后&#xff0c;就可以直接执行了&#xff1b;Java 需要使用 javac 编译成 .class 文件&#xff0c;还需要使用 Java 命令去主动执行它。JVM 就是识别 .class …

JVM详解——什么是JVM、JVM优点

JVM详解——什么是JVM、JVM优点 最近在学习Java&#xff0c;经常在书中看到JVM这三个字母&#xff0c;那到底什么是JVM呢&#xff1f; 并且JVM的知识在Java面试中也是非常受面试官青睐的知识点&#xff0c;那对于JVM我们到底要掌握哪些呢&#xff1f; 1、JVM概念 JVM是Jav…

一键禁用Win10自动更新,联想官方出品!!

对于Win10系统的强制更新&#xff0c;真的是是又爱又恨&#xff0c;更新是为了解决电脑系统存在的安全风险以及加入一些新功能&#xff0c;但经常性的开机或者关机都要更新配置&#xff0c;遇到大更新还需要花费很长的等待时间&#xff0c;更加可气的是还会出现更新失败的风险。…

关于禁止win10自动更新的方法:

关于禁止win10自动更新的方法&#xff1a; 1、winr键 输入 services.msc 进去Windows服务管理界面&#xff0c;并且找到Windows update双击进去 在常规中选择禁用&#xff0c;在恢复中选择无操作 2、winr 输入gpedit.msc 回车进入一下界面 在管理模板-windows组件 -window…

禁止windows更新唤醒计算机,windows10睡眠被自动更新唤醒的解决方法

一位用户反馈自己的windows10系统电脑在睡眠状态下总会被自动唤醒&#xff0c;感觉非常烦恼。后来发现每次win10系统开始自动更新操作系统的时候本来睡眠的电脑就会被自动唤醒。那么&#xff0c;我们该如何阻止其唤醒睡眠中的电脑呢&#xff1f;接下来&#xff0c;就随小编一起…