開(kāi)發(fā)環(huán)境
??SpringBoot版本:2.0.5.RELEASE、jdk版本:1.8+、Maven版本:3.5.4
項(xiàng)目框架
├── 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有兩種連接方式:一個(gè)是Jedis,另一個(gè)是Lettuce。它倆間的區(qū)別:使用Jedis,如果多線程使用同一個(gè)連接,線程時(shí)不安全的,需要使用連接池,為每一個(gè)Jedis實(shí)例分配一個(gè)連接;而使用Lettuce,當(dāng)多線程連接同一個(gè)連接實(shí)例時(shí),是線程安全的。
SpringBoot2.0以后,默認(rèn)的連接方式是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請(qǐng)求:設(shè)置ContentType=application/json,添加RequestBody中的內(nèi)容,格式為Json格式
POST請(qǐng)求 -
GET請(qǐng)求GET請(qǐng)求
-
PUT請(qǐng)求:設(shè)置ContentType=application/json,修改RequestBody中的內(nèi)容,格式為Json格式
PUT請(qǐng)求GET請(qǐng)求 -
DELETE請(qǐng)求DELETE請(qǐng)求GET請(qǐng)求
代碼地址
??https://github.com/JenkinWang/springboot-reids-restful-api