spring整合redis

news2025/1/11 22:48:46

1.导入依赖

<!-- spring-data-redis 依赖-->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>2.7.18</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.5.2</version>
</dependency>

2.导入配置文件

3.修改配置信息

配置文件:redis.properties

4.测试:

@Test
    public void test() {
        // 使用RedisTemplate的opsForValue()方法获取操作字符串值的ValueOperations接口实例
        redisTemplate.opsForValue().set("name", "jack");

        // 使用opsForValue()获取的实例,调用set方法将键为"name"的值设置为"jack"
        // 这行代码会将字符串"jack"存储在Redis数据库中,键为"name"

        String name = (String) redisTemplate.opsForValue().get("name");

        // 使用opsForValue()获取的实例,调用get方法获取键为"name"的值
        // 这行代码从Redis数据库中检索键为"name"的值,并将其转换为String类型,然后赋值给变量name
        // 如果键"name"存在,name变量将被赋值为"jack";如果不存在,name将为null
        System.out.println(name);
    }
    //数据类型:object
    @Test
    public void test1() {
        User user = new User();
        user.setUsercode("admin");
        user.setUsername("管理员");
        redisTemplate.opsForValue().set("user", user);
        User loginuser = (User) redisTemplate.opsForValue().get("user");
        System.out.println(loginuser);
    }

出现下情况(序列化/反序列化):

spring-redis.xml 下解掉注释

4.在项目中使用redis作为缓存工具

案例(整合前):

@Override
    public User selectByPrimaryKey(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }

1.将部分数据缓存到redis中

1.1注入RedisTemplate对象

1.2修改后的代码

@Override
public User selectByPrimaryKey(Long id) {
    //从缓存中读取user对象
    User user = (User) redisTemplate.opsForValue().get("object:user:"+id);//先查redis(缓存工具)
    if (user == null) {
        //没读取到就从数据库中读取
        System.out.println("从数据库读取");
        user=userMapper.selectByPrimaryKey(id);
        //将查到的user存入缓存工具当中redis
        redisTemplate.opsForValue().set("object:user:"+id, user);
    }
    return user;
}

2.结果展示

总结:加快我们的读取速度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旧衣回收小程序系统,为市场发展提供新模式

随着绿色生活的兴起&#xff0c;回收成为了大众生活的新选择&#xff0c;其中旧衣物回收更是深入人心&#xff01;通过旧衣物回收&#xff0c;大众不仅可以减少浪费&#xff0c;也能够进行资源在利用。目前&#xff0c;在科技的支持下&#xff0c;旧衣物回收正以一种新的方式进…

机械学习—零基础学习日志(如何理解概率论6)

随机变量的数字特征——期望与方差 以小明的成绩为例&#xff0c;如图所示。 这里其实涉及到&#xff0c;数学期望的概念。 对应的数值&#xff0c;乘以概率&#xff0c;相加以后就得到了数学期望。 随机变量的数学期望与方差 、 来个练习题&#xff1a; 解析&#xff1a; …

自制多肉查询工具

背景&#xff1a; 复习python qt、网页解析的常用操作 准备&#xff1a; 多肉信息网站涉及python的第三方库&#xff1a; lxmlPyQt5 实现效果&#xff1a; 功能&#xff1a; 随机读取&#xff1a;从本地加载已存储的多肉信息数据更新&#xff1a;从多肉信息网站更新5条多…

QT:Qt与ECharts

介绍ECharts ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;由百度团队最初开发&#xff0c;并在2018年初捐赠给Apache基金会&#xff0c;成为ASF孵化级项目。随着项目的不断发展&#xff0c;ECharts在2021年1月26日正式毕业&#xff0c;成为Apache顶级项目 链接…

背包问题【算法 07】

背包问题 背包问题是经典的计算机科学问题之一&#xff0c;涉及到如何在有限资源的约束下&#xff0c;选择最优的物品组合&#xff0c;以最大化收益。这个问题在现实中有广泛的应用&#xff0c;例如资源分配、物流调度和投资组合优化等。本文将详细介绍背包问题的定义、解决方法…

pytorch深度学习基础 7(简单的的线性训练,SGD与Adam优化器)

接下来小编来讲一下一些优化器在线性问题中的简单使用使用&#xff0c;torch模块中有一个叫optim的子模块&#xff0c;我们可以在其中找到实现不同优化算法的类 SGD随机梯度下降 基本概念 定义&#xff1a;随机梯度下降&#xff08;SGD&#xff09;是一种梯度下降形式&#…

mysql中出现错误1138-Invalid use of NULL value

问题&#xff1a;1138-Invalid use of NULL value 解决&#xff1a; 问题是当前字段中&#xff0c;有null的值&#xff0c;简单来说就是&#xff0c;你表里有空值&#xff0c;不能设置不为空&#xff01;&#xff01;&#xff01; 把空的值删掉重新设计就好了

第一次重大人工智能失败刚刚发生

这终于发生了。我们迎来了第一家真正意义上的 AI 公司惨败。 Inflection是一家由比尔盖茨、埃里克施密特、微软等人投资的公司&#xff0c;它成为第一家被冲进马桶的生成式人工智能相关公司。 他们最重要的产品是Pi&#xff0c;ChatGPT 的竞争对手&#xff0c;专注于成为友好且…

SpringAOP使用详解

AOP使用详解 首先创建maven项目 添加依赖在pom.xml里 创建三层结构和spring.xml文件&#xff0c;只要用到注解就得写扫描包在spring.xml里 上篇文章的知识点总结 对上篇文章excution详细解释 如果把前置通知修改成这个代表只有带有Logger注解的才会生效 合并注解的方法用&…

Windows权限维持实战

目录 介绍步骤 介绍 在攻击过程中中对于拿到的shell或钓上来的鱼&#xff0c;目前比较流行用CS做统一管理&#xff0c;但实战中CS官方没有集成一键权限维持的功能&#xff0c;为了将该机器作为一个持久化的据点&#xff0c;种植一个具备持久化的后门&#xff0c;从而随时可以连…

ffmpeg最新5.1.6版本源码安装

一、编译安装需要的开源编码格式&#xff1a; 首先在编译安装这些开源编码格式之前,我们要明白为啥需要他们&#xff1a; aacx264x265 为啥需要呢&#xff1f;如果你对ffmpeg稍微了解的话&#xff0c;ffmpeg本身是一个框架&#xff0c;自身默认并没有支持这三种编码格式&…

Vue3 后台管理系统项目 前端部分

这里写目录标题 1 创建Vue3项目1.1 相关链接1.2 Vue Router1.3 Element1.4 scss1.5 mitt1.6 axios1.7 echarts1.8 配置vite.config.js 2 CSS部分2.1 样式穿透2.2 :style &#xff1a;在样式中使用插值语法 3. ElementUI3.1 rules&#xff1a; 数据验证3.2 修改element.style中的…

《计算机网络-期末模拟卷》

一、分析题&#xff08;每题 6 分&#xff0c;共 36 分&#xff09; 1.请分析图 1-1 所展示的是哪种互联网接入技术&#xff0c;分析此接入技术的优势&#xff0c;并介绍你所了解的其他互联网接入技术。&#xff08;至少写 3 个&#xff09; 二、计算问答题&#xff08;每题 5…

docker应用

打包传输 1.将镜像打包 #查看帮助文件 docker --help #找到save&#xff0c;可以将镜像保存为一个tar包 docker save --help #查看save使用方式 #查看现有的镜像 docker images # docker save --output centos.tar centos:latest ls ...centos.tar... 可以将tar发送给其他用户…

JS基础进阶3-DOM事件

DOM事件流 一、定义 DOM事件流指的是从页面接收事件的顺序。这个路径包括了事件的捕获阶段、目标阶段和冒泡阶段。 图片来源黑马pink老师PPT 二、事件流阶段 DOM事件流涉及三个主要阶段&#xff1a; 捕获阶段&#xff08;Capturing Phase&#xff09;&#xff1a; 事件从…

QtChart1-基础入门

Qt Charts概述 Qt Charts模块是一组易于使用的图标组件&#xff0c;它基于Qt的Graphice View架构&#xff0c;其核心组件是QChartView和QChart。QChartView的父类是QGraphicsView&#xff0c;就是Graphics View架构中的视图组件&#xff0c;所以&#xff0c;QChartView是用于显…

Apollo9.0 PNC源码学习之Planning模块—— Lattice规划(六):横纵向运动轨迹评估

参考文章: (1)Apollo6.0代码Lattice算法详解——Part6:轨迹评估及碰撞检测对象构建 (2)自动驾驶规划理论与实践Lattice算法详解 0 前言 横纵向运动轨迹的评估,主要通过构建定点巡航和定点停车两个场景下,对纵向运动参考速度、加速度、加加速度的大小进行检验和过滤,然…

Vue3源码调试-第一篇

前言 相信大家在前端从业生涯中都会被问到过&#xff0c;有了解过Vue源码吗&#xff1f;我是没有的&#xff0c;所以今天就来读好吧&#xff0c;浅浅读一下&#xff0c;顺便记录一下。 那究竟怎么读&#xff0c;从哪里读&#xff0c;我就不啰嗦了&#xff0c;直接给大家一个链…

python dash框架 油气田可视化软件设计文档

V1.1:机器学习框架(神经网络) 时间范围优化 表格布局优化 添加前端设计元素布局 V1.0&#xff1a;基础布局和对应计算函数 要求 首先第一部分是通过神经网络预测天然气流量&#xff0c;其中输入开始时间和截止时间是为了显示这一段时间内的天然气流量预测结果 第二部分&…

小型空气净化器可以除猫毛吗?宠物空气净化器评测推荐

前段时间我有个病人&#xff0c;诊断出来肺结节&#xff0c;他第一反应就是说他家养着好几只猫&#xff0c;会不会是吸入宠物毛发导致的肺结节。有些结节确实跟宠物有关系&#xff0c;如果是对毛发过敏、或者是对排泄物过敏&#xff0c;养宠物就会增加患结节的概率。不过就算是…