开发环境
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格式
- GET请求
- PUT请求:设置ContentType=application/json,修改RequestBody中的内容,格式为Json格式
- DELETE请求