Ubuntu Redis连接失败的常见原因及解决方法
Redis服务未启动是连接失败的常见原因。使用以下命令确认服务状态:
sudo systemctl status redis  若显示“inactive (dead)”或“failed”,需启动服务:
sudo systemctl start redis  若需开机自启,可执行:
sudo systemctl enable redis  默认情况下,Redis仅允许本地连接(bind 127.0.0.1),且开启了保护模式(protected-mode yes),这会阻止远程访问。需修改配置文件:
sudo nano /etc/redis/redis.conf  bind指令,修改为bind 0.0.0.0(允许所有IP)或指定服务器IP(如bind 192.168.1.100);protected-mode指令,设置为protected-mode no。sudo systemctl restart redis  Ubuntu的防火墙(UFW)可能阻止Redis端口(默认6379)的入站流量。检查防火墙状态:
sudo ufw status  若防火墙启用且未开放6379端口,执行以下命令允许:
sudo ufw allow 6379 sudo ufw reload  使用redis-cli连接时,需指定正确的服务器IP、端口及密码(若有):
redis-cli -h 127.0.0.1 -p 6379  redis-cli -h <服务器IP> -p 6379 -a <密码>  若忘记密码,可查看配置文件中的requirepass指令(位于/etc/redis/redis.conf)。
若Redis端口(6379)被其他进程占用,会导致启动失败。使用以下命令检查端口占用情况:
sudo netstat -tuln | grep 6379  若端口被占用,可选择:
kill -9 <PID>);port指令(如port 6380),并重启服务。若以上步骤均无法解决,可通过日志获取详细错误信息:
sudo tail -f /var/log/redis/redis-server.log  常见日志错误包括:
bind指令格式错误);sudo ufw allow from <客户端IP> to any port 6379);