广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Boot整合 NoSQL 数据库 Redis详解
  • 208
分享到

Spring Boot整合 NoSQL 数据库 Redis详解

2024-04-02 19:04:59 208人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录引言一、环境准备二、构建Spring Boot项目三、引入Redis依赖四、Reds相关配置五、添加Redis配置类六、测试一下引言 在日常的开发中,除了使用 spring Bo

引言

在日常的开发中,除了使用 spring Boot 这个企业级快速构建项目的框架之外,随着业务数据量的大幅度增加,对元数据库造成的压力成倍剧增。在此背景下, Redis 这个 NoSQL 数据库已然整个项目架构中的不可或缺的一部分,懂得如何 Spring Boot 整合 Redis ,是当今开发人员必备的一项技能,接下来对整合步骤进行详细说明。

一、环境准备

在开始开发之前,我们需要准备一些环境配置:

二、构建Spring Boot项目

打开 idea -> file -> Nwe -> Project ,如图,勾选填写相关的配置信息:

勾选一些初始化的依赖配置:

Spring Boot项目初始化完成。

三、引入Redis依赖

构建完成Spring Boot项目工程之后,需要在 pom.xml 文件中引入 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>

四、Reds相关配置

将redis相关的依赖引入到项目中之后,需要对redis进行一些配置,在 application.properties配置redis:

# Redis服务器地址
spring.redis.host=自己搭建的redis服务器的 IP
# 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配置类

对Redis相关配置完成后,添加Redis配置类,(拿来即用):

package com.zhao.demo.config;
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;
    }
}

六、测试一下

将所有的环境依赖和配置搭建完成之后,进行测试一把。

① 首先,确保安装 Redis 的服务器已经启动Redis服务

② 编写 controller 类,前提需要引入 Spring Boot WEB 的依赖:

package com.zhao.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/redistest")
public class RedisTestController {
    @Autowired
    private RedisTemplate redisTemplate;
    @GetMapping
    public String testRedis(){
        // 设置值到reids
        redisTemplate.opsForValue().set("name","jack");
        // 从redis中获取值
        String name = (String)redisTemplate.opsForValue().get("name");
        return name;
    }
}

③ 启动Spring Boot工程,在浏览器上向接口发送请求:

项目启动成功,向 /redistest 接口发送请求

请求发送成功,获取到数据,测试成功,至此Spring Boot整合 Redis所有步骤已经完成,更多关于SpringBoot整合Nosql Redis的资料请关注编程网其它相关文章!

--结束END--

本文标题: Spring Boot整合 NoSQL 数据库 Redis详解

本文链接: https://www.lsjlt.com/news/167394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring Boot整合 NoSQL 数据库 Redis详解
    目录引言一、环境准备二、构建Spring Boot项目三、引入Redis依赖四、Reds相关配置五、添加Redis配置类六、测试一下引言 在日常的开发中,除了使用 Spring Bo...
    99+
    2022-11-13
  • spring boot整合MySQL数据库
    spring boot整合MySQL数据库 spring boot整合MySQL数据库可以说很简单,只需要添加MySQL依赖和在配置文件中添加数据库配置信息,利用spring-boot-starter...
    99+
    2023-08-31
    数据库 mysql spring boot
  • Spring Boot整合Kafka教程详解
    目录正文步骤一:添加依赖项步骤二:配置 Kafka步骤三:创建一个生产者步骤四:创建一个消费者正文 本教程将介绍如何在 Spring Boot 应用程序中使用 Kafka。Kaf...
    99+
    2023-03-10
    Spring Boot整合Kafka Spring Boot Kafka
  • Spring Boot 整合 Reactor实例详解
    目录引言1 创建项目2 集成 H2 数据库3 创建测试类3.1 user 实体3.2 UserRepository3.3 UserService3.4 UserController3...
    99+
    2022-11-13
  • MyBatis-Plus详细讲解(整合spring Boot)
    哈喽,大家好,今天带大家了解的是MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 首先说一下MyBatis-Plus的愿景是什么? My...
    99+
    2023-10-20
    spring boot 数据库 mysql MyBatis-Plus 框架整合 Powered by 金山文档
  • Spring Boot整合Lombok的方法详解
    上篇文章给大家介绍了,喜欢的朋友点击查看下。 SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI Lombok为啥这么牛逼?Spri...
    99+
    2022-11-12
  • spring Boot与Mybatis整合优化详解
    SpringBoot官方文档http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/关于spring-boot与mybatis整合优化方面的介绍,就是Mybat...
    99+
    2023-05-31
    spring boot mybatis
  • 详解Spring Boot整合Mybatis实现 Druid多数据源配置
    一、多数据源的应用场景目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢?Druid 是 Java 的数据库连接池组件。Druid 能够提供强大的监控和扩展功能。比如可以监控 SQL ,在监控业务可以查询慢查询 SQL...
    99+
    2023-05-31
    spring 多数据源 spring boo
  • Spring Boot 优雅整合多数据源
    目录何时用到多数据源整合单一的数据源整合Mybatis多数据源如何整合什么是动态数据源数据源切换如何保证线程隔离如何构造一个动态数据源定义一个注解如何与Mybatis整合演示总结前言...
    99+
    2022-11-13
  • Spring Boot怎么整合多数据源
    本篇内容主要讲解“Spring Boot怎么整合多数据源”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Boot怎么整合多数据源”吧!前言:什么是多数据源最常见的...
    99+
    2023-06-30
  • 详解Spring Boot使用redis实现数据缓存
    基于spring Boot 1.5.2.RELEASE版本,一方面验证与Redis的集成方法,另外了解使用方法。集成方法配置依赖修改pom.xml,增加如下内容。 <dependency> <groupId>...
    99+
    2023-05-31
    spring boot redis
  • 干货必看|Spring Boot整合MyBatis框架详解
    在开发中,我们通常会对数据库的数据进行操作,Sprirng Boot对关系型数据库和非关系型数据库的访问操作都提供了非常好的整合支持。所以今天壹哥就给大家讲解一下,如何在SpringBoot环境中整合Mybatis框架,请大家认真看哦。 一...
    99+
    2023-10-25
    mybatis 数据库 java
  • java、spring、springboot中整合Redis的详细讲解
    目录java整合Redis1、引入依赖或者导入jar包2、代码实现Spring整合Redis1、添加依赖2、redis配置文件3、注入模板对象springboot整合Redis1、添...
    99+
    2022-11-12
  • 详解redis与spring的整合(使用缓存)
    1、实现目标通过redis缓存数据。(目的不是加快查询的速度,而是减少数据库的负担)  2、所需jar包注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要配对使用,否则将会报错。因为commons...
    99+
    2023-05-31
    spring redis
  • SpringBoot详解整合Spring Boot Admin实现监控功能
    目录监控监控的意义可视化监控平台监控原理自定义监控指标监控 ​ 在说监控之前,需要回顾一下软件业的发展史。最早的软件完成一些非常简单的功能,代码不多,错误也少。随着软件功能的逐步完善...
    99+
    2022-11-13
  • 关于Spring Boot WebSocket整合以及nginx配置详解
    前言本文主要给大家介绍了关于Spring Boot WebSocket整合及nginx配置的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一:Spring Boot WebSocket整合创建一个maven项目,...
    99+
    2023-05-31
    springboot websocket nginx配置
  • 详解在Spring Boot中使用数据库事务
    我们在前面已经分别介绍了如何在spring Boot中使用JPA以及如何在Spring Boot中输出REST资源。那么关于数据库访问还有一个核心操作那就是事务的处理了,前面两篇博客小伙伴们已经见识到Spring Boot带给我们的巨大便利...
    99+
    2023-05-31
    spring boot 数据库
  • Spring Boot中Redis数据库的使用实例
    spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。redis介绍Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, set...
    99+
    2023-05-31
    spring boot redis
  • Redis数据库如何在Spring Boot中使用
    本篇文章为大家展示了Redis数据库如何在Spring Boot中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。redis介绍Redis是目前业界使用最广泛的内存数据存储。相比memcached...
    99+
    2023-05-31
    springboot redis
  • SpringBoot详解整合Spring Cache实现Redis缓存流程
    目录1、简介2、常用注解2.1、@EnableCaching2.2、@Cacheable2.3、@CachePut2.4、@CacheEvict3、使用Redis当作缓存产品3.1、...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作