Redis连接被拒绝(Connection refused)问题的完整解决指南

 更新时间:2025年11月21日 08:24:37   作者:Bruce_xiaowei  
这篇文章主要介绍了Redis连接被拒绝问题的诊断和解决流程,涵盖了服务未运行、配置限制、防火墙阻挡、资源不足等常见原因,并提供了相应的解决方案和安全配置建议,需要的朋友可以参考下

问题现象

当尝试连接Redis时出现以下错误:

Could not connect to Redis at 192.168.1.48:6379: Connection refused

问题诊断流程

1. 基础状态检查

# 检查Redis服务状态
systemctl status redis

# 检查Redis是否安装
redis-server --version
redis-cli --version
which redis-server

# 检查Redis进程
ps aux | grep redis
pgrep -lf redis

# 检查端口监听状态
netstat -tlnp | grep 6379
ss -tlnp | grep 6379

2. 连接测试

# 本地连接测试
redis-cli ping

# 远程连接测试
redis-cli -h 目标IP ping

常见原因及解决方案

情况一:Redis服务未安装

症状redis-server --version命令无输出

解决方案

# Ubuntu/Debian
sudo apt update && sudo apt install redis-server

# CentOS/RHEL
sudo yum install redis
# 或
sudo dnf install redis

情况二:Redis服务未启动

症状:服务已安装但进程不存在

解决方案

# 临时启动Redis
redis-server --daemonize yes

# 或使用配置文件启动
redis-server /etc/redis/redis.conf

# 创建系统服务(推荐)
sudo systemctl enable redis
sudo systemctl start redis

情况三:配置限制

症状:本地可连接,远程无法连接

解决方案
编辑Redis配置文件 /etc/redis/redis.conf

# 允许远程连接
bind 0.0.0.0

# 关闭保护模式(测试环境)
protected-mode no

# 设置密码(可选)
requirepass yourpassword

# 后台运行
daemonize yes

重启服务使配置生效:

sudo systemctl restart redis
# 或
pkill redis-server && redis-server /etc/redis/redis.conf

情况四:防火墙阻挡

症状:服务运行正常但无法连接

解决方案

# 检查防火墙状态
sudo ufw status
sudo iptables -L

# 开放Redis端口
sudo ufw allow 6379
# 或
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT

# 永久保存iptables规则
sudo service iptables save  # CentOS
# 或安装iptables-persistent (Ubuntu/Debian)

情况五:服务配置问题

创建完整的systemd服务文件

sudo cat > /etc/systemd/system/redis.service << EOF
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=always
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF

启用服务:

sudo systemctl daemon-reload
sudo systemctl enable redis
sudo systemctl start redis

高级排查技巧

1. 查看Redis日志

# 查看系统日志
sudo journalctl -u redis

# 或查看Redis日志文件
sudo tail -f /var/log/redis/redis-server.log

2. 检查资源限制

# 检查内存
free -h

# 检查磁盘空间
df -h

# 检查文件描述符限制
ulimit -n

3. 网络诊断

# 测试端口连通性
telnet 目标IP 6379
nc -zv 目标IP 6379

# 检查端口占用
sudo lsof -i :6379

4. 配置验证

# 检查配置文件语法
redis-check-rdb /etc/redis/redis.conf

# 测试配置
redis-server /etc/redis/redis.conf --test

安全配置建议

1. 生产环境安全设置

# 在redis.conf中设置
requirepass 强密码
rename-command FLUSHALL ""
rename-command CONFIG ""
bind 指定IP地址
port 自定义端口

2. 网络隔离

# 使用防火墙限制访问IP
sudo ufw allow from 信任IP to any port 6379

# 或使用iptables
sudo iptables -A INPUT -p tcp -s 信任IP --dport 6379 -j ACCEPT

自动化监控脚本

创建健康检查脚本:

#!/bin/bash
REDIS_HOST="localhost"
REDIS_PORT="6379"

if redis-cli -h $REDIS_HOST -p $REDIS_PORT ping | grep -q "PONG"; then
    echo "Redis is running"
    exit 0
else
    echo "Redis is down"
    # 尝试重启
    sudo systemctl restart redis
    exit 1
fi

总结

Redis连接被拒绝问题通常由以下原因引起:

  1. 服务未运行 - 启动Redis服务
  2. 配置限制 - 修改绑定地址和保护模式
  3. 防火墙阻挡 - 开放相应端口
  4. 资源不足 - 检查系统资源

通过系统化的诊断流程,可以快速定位并解决问题。建议在生产环境中配置适当的监控和告警机制,确保Redis服务的稳定性。

记住:在修改配置后务必重启Redis服务,并在生产环境中谨慎修改安全相关配置。

以上就是Redis连接被拒绝(Connection refused)问题的完整解决指南的详细内容,更多关于Redis连接被拒绝的资料请关注脚本之家其它相关文章!

相关文章

  • Redis底层数据结构详解

    Redis底层数据结构详解

    这篇文章主要介绍了Redis底层数据结构,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 解决redis在linux上的部署的问题

    解决redis在linux上的部署的问题

    这篇文章主要介绍了redis在linux上的部署,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 解读redis slaveof命令执行后为什么需要清库重新同步

    解读redis slaveof命令执行后为什么需要清库重新同步

    这篇文章主要介绍了redis slaveof命令执行后为什么需要清库重新同步,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • redission分布式锁防止重复初始化问题

    redission分布式锁防止重复初始化问题

    这篇文章主要介绍了redission分布式锁防止重复初始化问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • redis restore 命令的用法实例详解

    redis restore 命令的用法实例详解

    Redis的RESTORE命令用于将DUMP生成的序列化数据恢复为键值,适用于数据迁移、备份恢复和跨实例同步,本文介绍redis restore 命令的用法,感兴趣的朋友一起看看吧
    2025-02-02
  • Rocky9部署redis的实现示例

    Rocky9部署redis的实现示例

    本文主要介绍了Rocky9部署redis的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Redis是如何高效管理有限内存的(方法详解)

    Redis是如何高效管理有限内存的(方法详解)

    过期删除策略的深度剖析 Redis 可以对 key 设置过期时间的,为了防止过期的key长期占用内存,需要相应的过期删除策略将过期的key删除 基础操作 Redis设置过期时间 setex key1 5 value1:创建记录的时候指定过期时间,设置key1在5秒后过期 其实Redis这是一种基于创
    2025-09-09
  • 如何发现 Redis 中的 BigKey及什么是 BigKey

    如何发现 Redis 中的 BigKey及什么是 BigKey

    本文介绍Redis中BigKey的识别与处理,涵盖使用redis-cli、RMA工具、慢查询日志等方法,以及拆分键、优化逻辑、SCAN命令等策略,旨在提升Redis性能与稳定性,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • Redis并发访问问题详细讲解

    Redis并发访问问题详细讲解

    本文主要介绍了Redis如何应对并发访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-12-12
  • redis++的编译 安装 使用方案

    redis++的编译 安装 使用方案

    这篇文章主要介绍了redis++的编译 安装 使用方案的相关资料,需要的朋友可以参考下
    2023-03-03

最新评论