Home > Database > Redis > How SpringBoot integrates Redis operation API

How SpringBoot integrates Redis operation API

PHPz
Release: 2023-05-29 18:19:13
forward
1074 people have browsed it

SpringDataRedis calls Redis underlying interpretation

  • Before SpringBoot2.X, the officially recommended Jedis connection Redis was used directly

  • In 2 After . The operation is unsafe. If you want to avoid being unsafe, use the Jedis pool connection pool; BIO

  • lettuce: Netty is used as the bottom layer. The instance can be shared between multiple threads, and there is no thread incompatibility. In case of safety, the number of threads can be reduced; NIOHow SpringBoot integrates Redis operation API

    SpringBoot integrates Redis (source code analysis)
    • All configuration classes of SpringBoot, There is an automatic configuration class
    • The automatic configuration class will be bound to a properties file

Find Spring.factories

# in the source code
  • #Search for redis and find AutoConfiguration

  • ##Press ctrl and click to enter the classHow SpringBoot integrates Redis operation API

  • ##Find redisproperties.class

    How SpringBoot integrates Redis operation API

  • ctrl click to enter

    How SpringBoot integrates Redis operation API

  • ## It contains all the redis related configurations. Let’s take a brief look at it first, and we will talk about the others later.
  • How SpringBoot integrates Redis operation API

  • ##Bean injected by default
  • How SpringBoot integrates Redis operation API

  • But the default redisTemplate has some problems. Its key is of type Object, but the general key we expect They are all of type String, which requires forced type conversion, so as mentioned above, you can define RedisTemplate yourself
  • How SpringBoot integrates Redis operation APIWhen configuring the configuration file, if you need to configure the connection pool, use lettuce , do not configure Redis directly, it will not take effect if configured.

  • Check the RedisConnectionFactory during injection

  • How SpringBoot integrates Redis operation API

  • There are two subclasses, namely JedisConnectionFactory and LettuceConnectionFactory

  • #Because the JedisConnectionFactory class Many of the dependent classes do not exist, so you cannot use it directly. Dependencies are all existing

  • How SpringBoot integrates Redis operation API

  • so when configuring, use lettuce’s

  • How SpringBoot integrates Redis operation API

  • Do not directly configure jedis’s

  • How SpringBoot integrates Redis operation API

  • SpringBoot integration Redis (configuration)

  • yml
  • How SpringBoot integrates Redis operation API

    Copy the properties to create a configuration file in yml format. I still like yml
  • How SpringBoot integrates Redis operation API

    spring:
      redis:
        host: localhost
        port: 6379
    Copy after login

    Maven
  • 在项目创建的时候选择,如果没有选择就添加
    Copy after login
    <dependency>
      <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    Copy after login
  • Writing tests

  • Open the test class created by SpringBoot by default

    How SpringBoot integrates Redis operation API

redisTemp’s methods of operating data types all start with opsFor, followed by the type
  • How SpringBoot integrates Redis operation API

    For example, opsForValue is to operate strings

Then the subsequent application will be the same as the API written before

  • How SpringBoot integrates Redis operation API

  • 常用的操作可以直接点就可以了

  • 关于事物的

  • redisTemplate.unwatch();
    redisTemplate.watch("key");
    redisTemplate.multi();
    redisTemplate.discard();
    redisTemplate.exec();
    Copy after login

    关于数据库的操作需要获取链接后使用连接对象操作

    RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();connection.flushAll();connection.flushDb();connection.close();
    Copy after login

    测试代码及其执行结果

    package co.flower.redis02springboot;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate;
    
    @SpringBootTestclass Redis02SpringbootApplicationTests {/** * 我居然直接就指定了泛型 RedisTemplate<String,Object>结果就直接报错了,删除泛型后成功     */@Autowiredprivate RedisTemplate redisTemplate;
    
        @Testvoid contextLoads() {// 英文测试redisTemplate.opsForValue().set("name","xiaojiejie");
            System.out.println(redisTemplate.opsForValue().get("name"));// 中文测试redisTemplate.opsForValue().set("name","小姐姐");
            System.out.println(redisTemplate.opsForValue().get("name"));
        }
    
    }
    
    执行结果,SpringBoot的启动加载和结束销毁没有粘贴/***SpringBootStart****/xiaojiejie
    小姐姐/***SpringBootStop*****/
    Copy after login

    The above is the detailed content of How SpringBoot integrates Redis operation API. 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