Spring Boot integra la base de datos NoSQL Redis

inserte la descripción de la imagen aquí

?? Recomendación de columna: Spring Boot integra componentes de terceros
?? Serie de artículos: [Inicio rápido] Use SpringBoot 2.X + Mybatis-Plus para implementar fácilmente CRUD (actualización continua...)
?? Introducción de columna:
En la práctica diaria desarrollo, usaremos el marco de proyecto de construcción rápida de nivel empresarial Spring Boot para integrar y desarrollar varios componentes. Esta columna resumirá los pasos detallados del uso de Spring Boot para integrarse con componentes de terceros de uso común. Bienvenido a intercambiar y aprender. ???

Directorio de artículos

En el desarrollo diario, además de usar Spring Booteste marco de trabajo de nivel empresarial para construir proyectos rápidamente, con el aumento sustancial en la cantidad de datos comerciales, la presión sobre la base de datos de metadatos ha aumentado exponencialmente. En este contexto, Redisesta NoSQLbase de datos ya es una parte indispensable de toda la arquitectura del proyecto. Saber Spring Bootintegrar Redises una habilidad necesaria para los desarrolladores de hoy. A continuación, se describirán en detalle los pasos de integración.

1. Preparación ambiental

Antes de comenzar el desarrollo, debemos preparar algunas configuraciones de entorno:

  • jdk 1.8 u otra versión superior
  • Herramientas de desarrollo IDEA
  • Administrar dependencias Maven
  • Entorno redis, se recomienda construir un entorno redis en el sistema linux

2. Cree el proyecto Spring Boot

Abra idea -> file -> Nwe -> Project, como se muestra en la figura, verifique y complete la información de configuración relevante:

inserte la descripción de la imagen aquí

Compruebe algunas configuraciones dependientes iniciales:

inserte la descripción de la imagen aquí

La inicialización del proyecto Spring Boot está completa.

inserte la descripción de la imagen aquí

3. Introducir la dependencia de Redis

Después de compilar el proyecto Spring Boot, debe pom.xmlintroducir redislas dependencias relacionadas en el archivo

<!-- 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>

inserte la descripción de la imagen aquí

Cuatro, configuración relacionada con los rojos

Después de introducir dependencias relacionadas con redis en el proyecto, debe configurar redis y application.propertiesconfigurar 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

inserte la descripción de la imagen aquí

5. Agregue la clase de configuración de Redis

Después de completar la configuración relevante de Redis, agregue la clase de configuración de Redis (lista para usar):

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;

/**
 * @author xiaoZhao
 * @date 2022/9/6
 * @describe
 */
@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;
    }
}

inserte la descripción de la imagen aquí

Seis, pruébalo

Después de compilar todas las dependencias y configuraciones del entorno, pruébelo.

① Primero, asegúrese de que el Redisservidor instalado haya iniciado el servicio Redis

inserte la descripción de la imagen aquí

② Para escribir controlleruna clase, la premisa debe introducir Spring Boot Webla dependencia de:

inserte la descripción de la imagen aquí

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;

/**
 * @author xiaoZhao
 * @date 2022/9/6
 * @describe
 */
@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;
    }
}

③ Inicie el proyecto Spring Boot y envíe una solicitud a la interfaz en el navegador:

inserte la descripción de la imagen aquí

El proyecto se inicia correctamente y /redistestse envía una solicitud a la interfaz.

inserte la descripción de la imagen aquí

La solicitud se envía correctamente, se obtienen los datos y la prueba es exitosa. Hasta el momento, se han completado todos los pasos de integración de Redis con Spring Boot.

inserte la descripción de la imagen aquí

por fin

Sé que la mayoría de los ingenieros de Java de nivel junior y medio quieren mejorar sus habilidades y, a menudo, intentan crecer por sí mismos o inscribirse en clases.Sin embargo, las tasas de matrícula de casi 10.000 yuanes para las instituciones de formación son realmente estresantes. ¡El efecto del autoaprendizaje es ineficiente y prolongado, y es fácil tocar el techo y estancarse en la tecnología!

Por lo tanto, recopilé y clasifiqué un " Conjunto completo de materiales de aprendizaje para el desarrollo de Java " y se lo di a todos. La intención original también es muy simple, es decir, espero ayudar a los amigos que quieren aprender por sí mismos pero no saber por dónde empezar y, al mismo tiempo, reducir la carga de todos.

El editor ha cifrado: aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==Por razones de seguridad, codificamos el sitio web a través de base64 y usted puede decodificar la URL a través de base64.

Supongo que te gusta

Origin blog.csdn.net/m0_67265464/article/details/126774105
Recomendado
Clasificación