SpringBoot整合Redis开发RESTful API接口

本文最后更新于:2022年4月1日 上午

项目框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
├── 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信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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包:

1
2
3
4
5
<!--redis包-->  
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

建立连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**  
* 使用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 格式

  • GET 请求

  • PUT 请求:设置 ContentType=application/json ,修改 RequestBody 中的内容,格式为 Json 格式

  • DELETE 请求


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!