解决Spring Boot整合Redis时的连接问题

前言

在使用Spring Boot整合Redis的过程中,经常会遇到连接问题,尤其是当Redis服务部署在远程服务器上时。

问题描述

当你尝试连接到Redis服务器时,可能会遇到以下错误:

复制代码
org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to XXX.XXX.XXX:6379

解决方法

1. 修改Redis配置文件

步骤一:编辑Redis配置文件

打开Redis配置文件redis.conf,通常位于Redis安装目录下。

步骤二:注释掉 bind 127.0.0.1

找到 bind 127.0.0.1 这一行,并将其注释掉。这一步是为了允许Redis接受来自非本地主机的连接。

conf 复制代码
# bind 127.0.0.1
步骤三:关闭保护模式

protected-mode yes 改为 protected-mode no,关闭保护模式。

conf 复制代码
protected-mode no

2. 配置防火墙

步骤一:添加端口规则

确保防火墙允许6379端口的流量。使用以下命令添加端口规则:

bash 复制代码
firewall-cmd --zone=public --add-port=6379/tcp --permanent
步骤二:重启防火墙

重启防火墙以应用更改:

bash 复制代码
firewall-cmd --reload

3. 重启Redis服务

步骤一:停止Redis服务

如果你之前已经启动了Redis服务,需要先停止它:

bash 复制代码
./redis-cli shutdown
步骤二:启动Redis服务

在Redis安装目录下运行以下命令启动Redis服务:

bash 复制代码
./redis-server ../redis.conf

额外注意事项

检查Redis服务状态

使用以下命令检查Redis服务是否正在运行:

bash 复制代码
ps -ef | grep redis

测试连接

使用 redis-cli 命令从命令行测试连接,确保主机地址和端口号与配置文件中的设置一致:

bash 复制代码
redis-cli -h <IP> -p 6379

阿里云安全组设置

如果你在阿里云上运行虚拟机,确保安全组中已经开放了6379端口。

检查端口占用

确保没有其他进程占用6379端口。可以使用以下命令检查端口占用情况:

bash 复制代码
netstat -anp | grep 6379
相关推荐
学嵌入式的小杨同学11 小时前
【嵌入式 C 语言实战】栈、队列、二叉树核心解析:存储原理 + 应用场景 + 实现思路
linux·c语言·网络·数据结构·数据库·后端·spring
❀͜͡傀儡师11 小时前
SpringBoot与Artemis整合,实现航空行李追踪消息中枢系统
java·spring boot·后端
qq_2562470511 小时前
AG-UI:让 AI 走出聊天框的“界面革命”
后端
麦兜*12 小时前
SpringBoot Actuator监控端点详解,打造生产级应用健康检查
java·spring boot·后端
无限进步_12 小时前
二叉搜索树(BST)详解:从原理到实现
开发语言·数据结构·c++·ide·后端·github·visual studio
悟能不能悟12 小时前
Spring Boot 中处理跨域资源
java·spring boot·后端
qq_124987075312 小时前
基于springboot+vue的无人机共享管理系统(源码+论文+部署+安装)
java·vue.js·spring boot·后端·毕业设计·无人机·计算机毕业设计
源码获取_wx:Fegn089512 小时前
计算机毕业设计|基于springboot + vue网上超市系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring·课程设计
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-知识点管理与试题管理模块联合回归测试文档
前端·人工智能·spring boot·架构·领域驱动
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-阅卷评分与错题管理模块回归测试逻辑梳理文档
java·spring boot·系统架构·ddd·tdd·全栈开发