Redis6学习笔记【part5】SpringBoot整合Redis

SpringBoot构建电子书阅读平台的技术实践 现代Web应用开发中,SpringBoot作为Java生态的主流框架,通过自动配置和起步依赖显著提升了开发效率。其MVC架构模式配合Thymeleaf模板引擎,能够快速构建动态页面与RESTful API。在数据持久化层面,MyBatis-Plus的CRUD操作简化了数据库交互流程。本文以电子书阅读平台为例,详解如何整合PDF.js实现浏览器原生渲染,通过Redis构建实时消息系统,并采用多级缓存策略优化性能。特别针对大文件上传场景,给出了分片上传与断点续传的工程实现方案,为开发同类Web应用提供参考。 阅读详情

Spring Boot 整合 Redis

第一步,引入相关依赖

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

<!-- spring2.X集成redis所需common-pool2-->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.6.0</version>
</dependency>

第二步,配置application.properties

#Redis服务器地址
spring.redis.host=192.168.3.100
#Redis服务器连接端口
spring.redis.port=6379
#Redis数据库索引(默认为0)
spring.redis.database= 0
#连接超时时间(毫秒)
spring.redis.timeout=1800000
#连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=20
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-wait=-1
#连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=5
#连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0

第三步,添加redis配置类

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import java.time.Duration;


@EnableCaching
@Configuration
public class RedisConfig extends CachingConfigurerSupport {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        template.setConnectionFactory(factory);
        //key序列化方式
        template.setKeySerializer(redisSerializer);
        //value序列化
        template.setValueSerializer(jackson2JsonRedisSerializer);
        //value hashmap序列化
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        return template;
    }

    @Bean
    public CacheManager cacheManager(RedisConnectionFactory factory) {
        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        //解决查询缓存转换异常的问题
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        // 配置序列化(解决乱码的问题),过期时间600秒
        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofSeconds(600))
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
                .disableCachingNullValues();
        RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
                .cacheDefaults(config)
                .build();
        return cacheManager;
    }
}

第四步,编写代码并测试。

首先先自动注入 RedisTemplate ,利用 RedisTemplate 对 redis 进行操作。

@RestController
@RequestMapping("/redis")
@Api(tags = "测试redis")
public class TestRedisController {

    @Autowired
    private RedisTemplate redisTemplate;

    @GetMapping("/test")
    @ApiOperation("添加string类型的值")
    public String testRedis(){
        //添加值到redis
        redisTemplate.opsForValue().set("name","parker");
        //从redis获取值
        String name = (String) redisTemplate.opsForValue().get("name");

        /* redis五种基本数据类型的操作方法

            redisTemplate.opsForValue().set();
            redisTemplate.opsForList().set();
            redisTemplate.opsForSet().add();
            redisTemplate.opsForHash().put();
            redisTemplate.opsForZSet().add();

         */


        return name;
    }

}


进行测试,成功返回 redis 中的值。

在这里插入图片描述

涨姿势|小众建模软件Make human,MakeClothes插件使用详解教程(2) 衣服可以从头开始建模,或者通过改变人体网格或由MakeClothes工具提供的“服装助手”(见下文)来建模。在设计和建模一件衣物时,应该记住两个限制。首先,将服装网格映射到人体网格的算法要求服装网格完全由四面体组成。其次,知道MakeClothes每件衣服只支持一种材料是很重要的。 完成MakeClothes工作流程后,您的HOME / makehuman / v1 / data / clothes中的工具将创建一个新文件夹。该文件夹将采用用户为服装项目提供的唯一名称。该文件夹将填充必要的资源,以使该项目在 阅读详情

相关推荐

mmdetection 实战:基于Mask R-CNN与自定义COCO数据集的目标检测全流程解析

本文详细解析了如何使用mmdetection框架和Mask R-CNN模型,基于自定义COCO数据集完成目标检测任务的全流程。内容涵盖环境搭建、数据格式转换、配置文件定制化、模型训练与评估等核心步骤,并提供了针对工业缺陷检测场景的实用调优思路与避坑指南,帮助开发者高效构建高性能检测模型。

weixin_29046611的博客 136

6.Redis6 与 Spring Boot 整合

Spring Boot整合Redis非常简单,只需要按如下步骤整合即可。

dingxiao123的博客 528

基于java实现的弹幕视频网站

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示弹幕视频网站,在弹幕视频网站可以查看首页、视频信息、商品信息、论坛信息、我的、跳转到后台、购物车、客服等内容前台首页界面图登录,通过登录填写账号、密码等信息进行登录操作登录界面图视频信息界面图。

DC5621的博客 1333

SpringBoot简单整合redis

这是一个使用redis内带的RedisTemplate使用redis 的简单整合 (1)导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> (2)编写配置信息(就是写入redis的配置信息) 这个是根据

weixin_45317589的博客 561

华为HCIA-Datacom实战:200人企业园区网从规划到部署全流程解析

本文详细解析了华为HCIA-Datacom认证实战中200人企业园区网的规划与部署全流程。从需求分析、组网架构设计到设备选型、VLAN划分及安全策略实施,全面覆盖园区网建设的关键环节,特别针对部门隔离、无线覆盖和基础安全防护等典型场景提供可落地的解决方案。

f0g1h2的博客 710

三维变换矩阵实战——三维点云的旋转、缩放、镜像、错切、平移、正交投影

旋转矩阵:右边矩阵是点云的原始坐标,左边的是旋转矩阵可视化:绕x轴旋转90度。

weixin_43850909的博客 8229

SpringBoot(六):SpringBoot整合Redis

https://blog.youkuaiyun.com/plei_yue/article/details/79362372

qq_35071164的博客 177

Mac无管理员权限安装NVM全攻略(附国内镜像加速)

本文详细介绍了在Mac电脑无管理员权限的情况下,如何通过Git克隆方式安装Node版本管理工具NVM,并配置国内镜像源以加速下载。攻略涵盖环境检查、安装步骤、Shell环境变量配置、镜像加速设置以及常用命令和常见问题解决方案,帮助开发者绕过权限限制,高效管理Node.js版本。

weixin_29296241的博客 489

SpringBoot整合Redis6及简单增删改查

本文将从零开始以SpringBoot为基础整合Redis6,并配合mybatis-plus的代码生成器实现基础的mysql+redis双数据源的增删改查。

weixin_52258854的博客 871

实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

本文通过ABS通讯丢失故障触发、判定条件Simulink模型的搭建和仿真的讲解,介绍了一种控制器CAN通讯丢失故障判定的方法和建模方法,希望能给相关技术人员带来一定参考和帮助。

qq_43011586的博客 3685

MT4/MT5 第三代移动平均线(MetaTrader 指标)

第三代移动平均线(3G-MA)是传统MA指标的升级版本,通过"时滞压缩"算法将信号滞后降至理论极限(λ=2)。该指标在保留平滑性的同时,信号速度比EMA快1.5-2.3倍,适用于MT4/MT5平台。核心参数包括计算周期(默认34)、滞后压缩系数(2-10)和应用价位选择,支持斜率变色功能。安装简单,无需外部依赖,通过多周期共振可提升12-18%胜率。指标代码包含完整的MT4/MT5实现方案,采用双缓冲计算结构,通过相位前移算法抵消群延迟。风险提示:需配合其他技术指标和严格风控(≤2%账户

JanLEE 579

6.springboot整合redis

1.创建一个名为springboot-redis的springboot工程。

qq_53597372的博客 258

贪婪投影三角化算法

贪婪投影三角化算法是一种利用点云数据进行曲面重建的方法。其基本思想是通过迭代地连接点云中的邻近点来生成三角形,从而构建出整个表面。这种方法被称为“贪婪”,因为它在每一步仅考虑当前最优的策略,而不考虑全局的最优性。

twnkie的博客 1567

SpringBoot学习笔记【part14】Spring Cache + Redis 集成缓存数据

是一个非常优秀的缓存组件,方便切换各种底层Cache(如:redis)项目集成Spring Cache + Redis,步骤如下。

Parker_cpp的博客 1189

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SpringBoot part 4 day13

1 学习Reids分片机制 2 Redis哨兵机制 3 Redis集群的配置

weixin_47562812的博客 204

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot学习-part54搭建redis环境与测试

linux虚拟机中,用docker,pull下来之后run起来 注意redis默认端口6379 安装Redis DeskTop Manager 简单配置后开始测试使用: List of unsupported commands: DUMP, RESTORE, AUTH Connecting ... Connected. redis:0>append msg hello "5" redis:0>append msg world "10" redis:0>lpush 3 "ERR

Ezerbel的博客 243

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SpringBoot part4 day12

1 AOP实现商品分类缓存 2 Redis基本特性 持久化/内存优化策略 3 Redis分片机制 4 Redis分片机制原理 5 SpringBoot整合Redis分片

weixin_47562812的博客 147

SpringBoot+Vue家教系统开发:智能匹配与高并发实践

在线教育平台开发中,前后端分离架构已成为主流技术方案。通过SpringBoot构建的RESTful API处理复杂业务逻辑,结合Vue的组件化开发实现高效交互。系统采用多维度加权算法实现智能匹配,利用Redis GEO处理地理位置计算,并通过三级锁机制解决高并发预约问题。在工程实践中,Elasticsearch实现多条件筛选,RabbitMQ处理异步通知,有效提升系统性能。这类双边平台技术方案可广泛应用于家教、技能培训等需要精准匹配的服务领域,其中智能推荐算法和并发控制是保障用户体验的关键技术点。

weixin_30879833的博客 286

华为大神珍藏版:SpringBoot全优笔记,面面俱到太全了

作为开发人员,对于Spring全家桶肯定是不陌生的,而来自于Spring大家族的Spring Boot,作为Spring团队提供的流行框架,它的存在解决的Spring框架使用较为繁琐的问题,所以掌握SpringBoot是精通Spring必不可少的一个过程。SpringBoot作为官方大力推荐的一个技术,是每一个开发人员都应该要掌握的重点。在面试过程中,SpringBoot的相关内容都会被面试官给问到,几乎一线互联网对于技术岗的任职要求都对Spring有一定的规定,所以学习Spring刻不容缓。

m0_63437643的博客 851

华为大神珍藏版:SpringBoot 全优笔记,面面俱到太全了

前言 作为开发人员,对于 Spring 全家桶肯定是不陌生的,而来自于 Spring 大家族的 Spring Boot,作为 Spring 团队提供的流行框架,它的存在解决的 Spring 框架使用较为繁琐的问题,所以掌握 SpringBoot 是精通 Spring 必不可少的一个过程。 在面试过程中,SpringBoot 的相关内容都会被面试官给问到,几乎一线互联网对于技术岗的任职要求都对 Spring 有一定的规定,所以学习 Spring 刻不容缓。 而今天,我们则主要一起来学习 SpringBo

Java架构师之路的博客 240

Java - 程序员面试笔记记录 & 实现 - Part5

Executor:拦截内部执行器,负责调用 StatementHandler 操作数据库,并把结果通过 ResultSetHandler 进行自动映射,还处理了二级缓存操作。StatementHandler:拦截SQL语法构建的处理。也实现了一级缓存。ParamenterHandler:拦截参数处理。ResultSetHandler:拦截结果集的处理。

Aye 1036

Part 1 短信登录等

利用redis实现短信登录

m0_46602882的博客 164

最新奉上:华为技术总监手码—SpringBoot全优笔记

由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,

m0_60229361的博客 899

面试再问Spring?这份价值百万的的SpringBoot全栈笔记 看完直接怼他

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。本文已被。

2401_84688466的博客 914

SpringBoot求职招聘考试管理系统设计与实现

在线考试系统作为现代招聘流程的关键环节,通过技术手段实现智能化组卷与防作弊。基于SpringBoot框架开发的系统采用MVC架构,整合Thymeleaf模板引擎和MySQL数据库,利用遗传算法实现智能组卷,确保试题覆盖度和难度系数均衡。系统通过浏览器锁屏、人脸识别和行为分析等技术构建多层次防作弊机制,同时采用Redis+本地缓存的二级缓存方案应对高并发考试提交。这种轻量级解决方案特别适合中小型企业的招聘需求,既能实现精准人才筛选,又避免了传统HR系统的复杂性。

aoe41606的博客 466
上一篇: Redis6学习笔记【part4】Jedis-API与手机验证码功能实现
下一篇: Swagger2学习笔记——SpringBoot整合Swagger2进行接口测试
Parker7
博客等级 码龄7年 18粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Parker7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值