近期学习SpringBoot整合Redis , 总结了一些Springboot连接Redis数据库的问题, 以备再犯

Redis 配置文件

  1. 注释掉默认的 bind
  2. 关闭安全检查模块 protected-mode
  3. 配置Redis访问密码
  4. 修改完配置文件需要重启Redis 使配置生效

ps: 用编辑器搜索bind 等关键字 , Linux下 vi 编辑器用 /bind

# bind 127.0.0.1 -::1  
//1.注释掉 , 这样这个redis不会限于本机访问, 可以远程访问

protected-mode  no  
//2.此处修改成no , 关闭保护模块

#3. '#'  requirepass foobared
requirepass 123456   
//3. 设置密码 , 云端更为必要,甚至要复杂一些, 本地虚拟机可以不设置

//4. 重启Redis生效

Linux防火墙&服务器安全

  1. 放行Linux 防火墙的6379端口
  2. 如果使用云服务器安装的Redis 不仅要放开Linux6379端口也要放行安全组6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent

firewall-cmd --reload

SpringBoot方面

  1. yml配置文件
spring:
  # redis
  redis:
    host: 192.168.8.188
    port: 6379
    timeout: 3
    password: 123456  # 如果配置了密码一定要写 ,不然报错
    pool:
      minIdle: 1 # 最小空闲连接数(默认为0,该值只有为正数才有用)
      maxIdle: 10  # 最大空闲连接数(默认为8,负数表示无限)
      maxWait: 3  # 从连接池中获取连接最大等待时间(默认为-1,单位为毫秒,负数表示无限)
      maxActive: 8 # 最大可用连接数(默认为8,负数表示无限)

  1. StringRedisTemplate 的注解使用
    原因 : @Autowired是以类型注入 , @Resource 是优先基于名称注入
    StringRedisTemplate 是RedisTemplate的子类 , 如果按照类型注入
    会报错
   //正确的用法
    @Resource
    private StringRedisTemplate  stringRedisTemplate;

	//错误的用法
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

//还有一种写法也可以执行
    @Autowired
    @Qualifier("stringRedisTemplate")
    private StringRedisTemplate stringRedisTemplate;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐