StackExchange.Redis调用GetDatabase()失败,无法连接Redis服务器
解决StackExchange.Redis连接报错:无法连接到Redis服务器
问题场景
以下是我编写的Redis客户端代码:
using StackExchange.Redis; namespace Redis { public class Client { public static readonly ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(new ConfigurationOptions() { EndPoints = { "localhost" } } ); public static double Ping() { var db = redis.GetDatabase(); var ping = db.Ping(); return ping.TotalMilliseconds; } } }
调用redis.GetDatabase()时,持续报错:"It was not possible to connect to the redis server(s) right now"(当前无法连接到Redis服务器)。
排查与解决步骤
确认Redis服务是否正常运行
打开命令行(Windows用PowerShell/cmd,Linux用终端)执行redis-cli ping,返回PONG说明服务正常;若无法连接,先启动Redis服务:- Windows:找到Redis安装目录运行
redis-server.exe,或通过services.msc找到Redis服务并启动。 - Linux:执行
sudo systemctl start redis,或直接启动redis-server。
- Windows:找到Redis安装目录运行
检查连接配置准确性
- 默认Redis端口为6379,若修改过端口,需在
EndPoints中指定,比如EndPoints = { "localhost:6380" }。 - 若Redis设置了密码,要在
ConfigurationOptions中添加Password = "你的密码"。 - 排查防火墙/安全软件是否拦截6379端口,本地测试可临时关闭防火墙验证,确认问题后再添加端口放行规则。
- 默认Redis端口为6379,若修改过端口,需在
优化ConnectionMultiplexer初始化逻辑
ConnectionMultiplexer是线程安全的全局复用组件,直接在静态构造时连接可能因服务未就绪或无重试导致失败,建议改成延迟初始化+异常重试:
using StackExchange.Redis;
using System;
namespace Redis
{
public class Client
{
private static ConnectionMultiplexer _redis;
private static readonly object _lockObj = new object();
public static ConnectionMultiplexer Redis { get { if (_redis == null || !_redis.IsConnected) { lock (_lockObj) { if (_redis == null || !_redis.IsConnected) { try { _redis = ConnectionMultiplexer.Connect(new ConfigurationOptions() { EndPoints = { "localhost" }, ConnectRetry = 3, ConnectTimeout = 5000 }); } catch (Exception ex) { // 可添加日志记录逻辑 throw new Exception("Redis连接初始化失败", ex); } } } } return _redis; } } public static double Ping() { var db = Redis.GetDatabase(); var ping = db.Ping(); return ping.TotalMilliseconds; } }
}
- **查看Redis日志定位细节** Redis日志会记录连接失败的具体原因(如密码错误、端口占用、连接数超限等),Windows日志一般在安装目录的`redis-server.log`,Linux日志在`/var/log/redis/redis-server.log`,根据日志信息针对性修复。 内容的提问来源于stack exchange,提问作者iKingNinja
相关产品推荐
相关产品推荐

