SpringBoot整合Redis开发RESTful API接口

开发环境

  SpringBoot版本:2.0.5.RELEASE、jdk版本:1.8+、Maven版本:3.5.4

项目框架

   ├── pom.xml
   ├── springbootreidsrestfulapi.iml
   ├── src
   │   ├── main
   │   │   ├── java
   │   │   │   └── com
   │   │   │       └── jenkin
   │   │   │           └── springboot
   │   │   │               ├── App.java
   │   │   │               ├── controller
   │   │   │               │   └── UserController.java
   │   │   │               ├── pojo
   │   │   │               │   ├── RedisConfigBean.java
   │   │   │               │   └── User.java
   │   │   │               ├── redis
   │   │   │               │   └── RedisConfig.java
   │   │   │               └── service
   │   │   │                   ├── UserService.java
   │   │   │                   └── impl
   │   │   │                       └── UserServiceImpl.java
   │   │   └── resources
   │   │       └── application.properties

配置文件

SpringBoot里的application.properties文件中配置Redis信息

# REDIS (RedisProperties)
# Database index used by the connection factory.
spring.redis.database=0

# Redis server host.
spring.redis.host=localhost

# Login password of the redis server.
spring.redis.password=

# Redis server port.
spring.redis.port=6379

# Maximum number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.
spring.redis.lettuce.pool.max-active=8

# Maximum number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.
spring.redis.lettuce.pool.max-idle=8

# Maximum amount of time a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.
spring.redis.lettuce.pool.max-wait=-1ms

# Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.
spring.redis.lettuce.pool.min-idle=0

# Shutdown timeout.
spring.redis.lettuce.shutdown-timeout=100ms

Redis有两种连接方式:一个是Jedis,另一个是Lettuce。它俩间的区别:使用Jedis,如果多线程使用同一个连接,线程时不安全的,需要使用连接池,为每一个Jedis实例分配一个连接;而使用Lettuce,当多线程连接同一个连接实例时,是线程安全的。
SpringBoot2.0以后,默认的连接方式是Lettuce,我这里使用的也是Lettuce,首先添加Redis包:

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

如果使用的是Jedis连接,需要修改一下配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
</dependency>

建立连接

    /**
     * 使用Lettuce连接Redis
     * @return
     */
    @Bean
    public LettuceConnectionFactory connectionFactory() {
        LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory();
        lettuceConnectionFactory.setDatabase(redisConfigBean.getDatabase());
        lettuceConnectionFactory.setHostName(redisConfigBean.getHost());
        lettuceConnectionFactory.setPassword(redisConfigBean.getPassword());
        lettuceConnectionFactory.setPort(redisConfigBean.getPort());

        return lettuceConnectionFactory;
    }

效果演示

  • POST请求:设置ContentType=application/json,添加RequestBody中的内容,格式为Json格式
    《SpringBoot整合Redis开发RESTful API接口》 POST请求
  • GET请求 《SpringBoot整合Redis开发RESTful API接口》 GET请求
  • PUT请求:设置ContentType=application/json,修改RequestBody中的内容,格式为Json格式
    《SpringBoot整合Redis开发RESTful API接口》 PUT请求 《SpringBoot整合Redis开发RESTful API接口》 GET请求
  • DELETE请求 《SpringBoot整合Redis开发RESTful API接口》 DELETE请求 《SpringBoot整合Redis开发RESTful API接口》 GET请求

代码地址

  https://github.com/JenkinWang/springboot-reids-restful-api

    原文作者:Jenkinsmile
    原文地址: https://www.jianshu.com/p/e957a2dc5de0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞