/springboot-redis-restful-api

SpringBoot整合Redis开发RESTful API接口

Primary LanguageJava

springboot-redis-restful-api

SpringBoot整合Redis开发RESTful API接口

项目框架

   ├── 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请求

交流一下