[root@node01 bin]# ./redis-cli Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>
时间: 2025-07-04 16:34:43 浏览: 5
### Redis连接被拒绝的原因及解决方案
Redis连接被拒绝(`Connection refused at 127.0.0.1:6379`)的问题通常由多种原因引起,以下是一些常见原因及对应的解决方案。
#### 1. Redis服务未启动
如果Redis服务未正确启动,客户端尝试连接时会收到`Connection refused`错误。可以通过以下命令检查Redis服务状态:
```bash
sudo service redis status
```
若服务未启动,可以使用以下命令启动Redis服务:
```bash
sudo service redis start
```
对于使用`systemctl`的系统,可以使用以下命令启动和检查状态[^2]:
```bash
sudo systemctl start redis
sudo systemctl status redis
```
#### 2. 防火墙阻止Redis端口
某些操作系统(如CentOS 7)默认启用了防火墙,可能会阻止Redis的默认端口(6379)。可以通过以下命令检查防火墙状态并开放端口:
```bash
# 查看防火墙状态
sudo systemctl status firewalld
# 开放6379端口
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd --reload
```
确保防火墙已允许Redis端口后,再次尝试连接Redis[^2]。
#### 3. Redis配置文件问题
Redis的配置文件(通常位于`/etc/redis/redis.conf`)中的设置可能导致连接失败。例如,`bind`参数可能限制了Redis仅监听本地回环地址(`127.0.0.1`),或者`protected-mode`被启用,阻止了未经授权的访问。可以通过以下步骤检查和修改配置文件:
```bash
sudo nano /etc/redis/redis.conf
```
- 确保`bind`参数包含正确的IP地址。例如,如果希望Redis监听所有网络接口,可以将`bind`设置为`0.0.0.0`。
- 如果不需要保护模式,可以将`protected-mode`设置为`no`。
- 修改完成后重启Redis服务以应用更改:
```bash
sudo service redis restart
```
#### 4. 权限问题
在某些情况下,用户权限不足可能导致无法连接到Redis。例如,普通用户可能无法访问Redis服务。可以通过切换到`root`用户或赋予当前用户适当权限来解决此问题[^1]:
```bash
sudo su
redis-cli
```
#### 5. 操作系统差异
不同操作系统对服务管理的方式有所不同。例如,在Ubuntu中使用`service`命令管理Redis服务,而在某些其他发行版中可能需要使用`systemctl`。确保使用正确的命令管理Redis服务[^3]。
---
### 示例代码:检查Redis连接状态
以下是一个简单的Python脚本,用于测试与Redis的连接状态:
```python
import redis
try:
r = redis.StrictRedis(host='127.0.0.1', port=6379, decode_responses=True)
if r.ping():
print("Redis连接成功")
except redis.exceptions.ConnectionError:
print("无法连接到Redis:Connection refused")
```
---
阅读全文
相关推荐


















