Home > Database > Redis > body text

How SpringBoot integration uses Redis

PHPz
Release: 2023-05-28 12:18:33
forward
690 people have browsed it

    SpringBoot integrates using redis

    Jedis is a Java-oriented client officially launched by Redis, which provides many interfaces for Java language calls. It can be downloaded from the Redis official website. Spring-data-redis is part of the spring family. It provides access to the redis service through simple configuration in the srping application, and highly encapsulates the reids underlying development package (Jedis, JRedis, and RJC). RedisTemplate provides various redis operations

    spring-data-redis provides the following functions for jedis:

    1. The connection pool automatically manages and provides a highly encapsulated "RedisTemplate "Class.

    2. Classifies and encapsulates a large number of APIs in the jedis client, and encapsulates the same type of operations into operation interfaces.

    ValueOperations : Simple K-V operation

    SetOperations: set type data operation

    ZSetOperations: zset type data operation

    HashOperations: for map type data operation

    ListOperations: For list type data operations

    3. Encapsulate transaction operations and have container control.

    4. A variety of optional strategies (RedisSerializer) are provided for the "serialization/deserialization" of data

    JdkSerializationRedisSerializer: access scenarios for POJO objects, using JDK itself for serialization Mechanism.

    StringRedisSerializer: When the Key or value is a string, the byte sequence of the data is encoded into a string according to the specified charset, which is "new String(bytes, charset)" and "string.getBytes(charset) )" direct encapsulation. is the most lightweight and efficient strategy.

    JacksonJsonRedisSerializer: The jackson-json tool provides conversion capabilities between javabean and json. It can serialize pojo instances into json format and store them in redis, and can also convert json format data into pojo instances.

    Build

    1. Import the jar package

    How SpringBoot integration uses Redis

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

    How SpringBoot integration uses Redis

    2. Configure the connection redis

    How SpringBoot integration uses Redis

    How SpringBoot integration uses Redis

    spring: 
     redis: 
     	host: 192.168.31.100 
     	port: 6379
        password: 111 
        database: 0 
        pool: max-active: 8 # 连接池最大连接数(使用负值表示没有限制) 
        	max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
    		max-idle: 8 # 连接池中的最大空闲连接 
    		min-idle: 0 # 连接池中的最小空闲连接 
    		timeout: 5000ms # 连接超时时间(毫秒)
    Copy after login

    Add the above configuration under spring in the application.yml file

    3. Add the configuration class RedisConfig

    How SpringBoot integration uses Redis

    package com.ffyc.back.demo.config;
    
    import com.fasterxml.jackson.annotation.JsonAutoDetect;
    import com.fasterxml.jackson.annotation.JsonTypeInfo;
    import com.fasterxml.jackson.annotation.PropertyAccessor;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    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.StringRedisSerializer;
    @Configuration
    public class RedisConfig {
        /**
         * 序列化键,值
         * @param connectionFactory
         * @return
         */
        @Bean
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
            redisTemplate.setConnectionFactory(connectionFactory);
            Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
            StringRedisSerializer redisSerializer = new StringRedisSerializer();
            redisTemplate.setKeySerializer(redisSerializer);
            redisTemplate.setHashKeySerializer(redisSerializer);
            redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
            redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
            return redisTemplate;
        }
    }
    Copy after login

    Add this configuration in the configuration package

    The function of this configuration class is to serialize the data to be passed by the backend to json. If there is no such configuration, the backend If the passed format does not match the redis side, garbled characters will appear

    4. Inject RedisTemplate

    How SpringBoot integration uses Redis

    How SpringBoot integration uses Redis

    How SpringBoot integration uses Redis

    Inject it where you need to use it and you can use it

    5. Test and use

    How SpringBoot integration uses Redis

    Usage examples:

    (1)

    How SpringBoot integration uses Redis

    (2)

    How SpringBoot integration uses Redis

    The above is the detailed content of How SpringBoot integration uses Redis. For more information, please follow other related articles on the PHP Chinese website!

    Related labels:
    source:yisu.com
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template