SpringBoot项目实战(二): redis

前言

本章基于上一章应用进行改造,增加redis

响应式与非响应式

SpringBoot2中已经把redis的驱动从Jedis改为Lettuce,这也是实现响应式最关键的地方。
那什么是响应式呢?

简单理解响应式

比如我们在使用excel时,单元格c1的值为2,单元格c2的值是3,单元格c3是一个公式(c1+c2)
如果改变c1或c2的值,c3单元格也会变更。这就是响应式。响应式在前端页面应用非常广泛。

1.引入需要的jar包

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-data-redis-reactiveartifactId>
dependency>
<dependency>
    <groupId>org.apache.commonsgroupId>
    <artifactId>commons-pool2artifactId>
dependency>

注意commons-pool2是必须要引用的。

2. 配置redis连接配置

spring.redis.host=192.168.222.12
spring.redis.password=123456
#连接池最小空闲连接,默认0
spring.redis.lettuce.pool.min-idle=5
#连接池最大空闲连接,默认8
spring.redis.lettuce.pool.max-idle=10
#连接池最大连接数,负值表示没有限制,默认8
spring.redis.lettuce.pool.max-active=20
#连接池最大等待时间,负值表示没有限制,默认-1ms
spring.redis.lettuce.pool.max-wait=1000

3.使用样例

@RestController
public class RedisController {

    @Autowired
    private ReactiveRedisTemplate reactiveRedisTemplate;
    
    @Autowired
    private ReactiveStringRedisTemplate stringRedisTemplate;

    @RequestMapping("/redis/setData")
    public String setData(){
        Mono<Boolean> momo = reactiveRedisTemplate.opsForValue().set("test|string", "this is a string value");
        momo.subscribe(System.out::println);
        return "setData";
    }

    @RequestMapping("/redis/getData")
    public Mono getData(){
        Mono momo = reactiveRedisTemplate.opsForValue().get("test|string");
        momo.subscribe(System.out::println);
        return momo;
    }
    @RequestMapping("/redis/getData2")
    public Mono getData2(){
        Mono momo = reactiveRedisTemplate.opsForValue().get("test|string");
        momo.subscribe(System.out::println);
        return momo;
    }
}

如果启动正常,直接使用@Autowired即可。
另外要注意,不同的Template的序列化方案不同,比如样例中,如果set使用的是ReactiveRedisTemplate,那用ReactiveStringRedisTemplate是get不到数据的。
这一点在做系统升级时一定要注意多测试。

结束语

本章主要实现接入数据库。
如果对您有帮助,请给个赞。

你可能感兴趣的:(springBoot,Java,SpringMVC)