背景:
前段时间使用redis时发现yaml配置中的redis相关配置不生效,后面发现将配置修改甚至删除所有相关redis的配置,springboot依然能使用redis里面默认的db0并且不报错。上网查阅了一些文章,但是都和我的情况不符。
直接说结论:
出现这个问题的原因是SpringBoot 2.x和 3.x 对于reids的配置不一样。之前我用的是3.x版本,后来修改了版本,却没有修改redis配置。还是因为粗心导致了这个问题
配置代码
业务代码:
//生成验证码
String code = RandomCodeUtils.randomNumbers(6);
// 存储验证码到reids
stringRedisTemplate.opsForValue().set(LOGIN_CODE_KEY + recipient, code, LOGIN_CODE_TTL, TimeUnit.MINUTES);
//todo 在这里发送代码
return Result.success("邮件发送成功");
修改前配置(SpringBoot 3.x使用这种配置):
spring:
data:
redis:
host: 127.0.0.1
port: 6379
database: 11
password:
jedis:
pool:
max-active: 8
max-idle: 8
min-idle: 2
max-wait: 300ms
修改后yaml配置(SpringBoot 2.x使用这种配置):
spring:
redis:
host: 127.0.0.1
port: 6379
password:
database: 11
jedis:
pool:
max-active: 8
max-idle: 8
min-idle: 2
max-wait: 300ms
运行后的效果
可以看到配置生效,使用的是db11