首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StackExchange.Redis:没有可用的连接来服务这个操作。主机上的UnableToConnect :端口/交互

StackExchange.Redis:没有可用的连接来服务这个操作。主机上的UnableToConnect :端口/交互
EN

Stack Overflow用户
提问于 2020-10-29 10:26:02
回答 2查看 1.6K关注 0票数 1

我正在尝试从C#连接REDIS数据库(GCP-memorystore Redis)。当将值设置为Redis时,我得到的异常如下:

没有可用的连接来服务此操作2.0.519.65453;on 10.0.0.26379/ UnableToConnect,Initializing,NONE :NONE: BeginConnectAsync,NONE: 0,last: 10s前,最后一次写入: 10s前,未应答-写:115 s前,保持-活动: 180s,状态:连接,mgr: 10中的10可用,最后心跳:从不,全局:0,v: Busy=0,Free=1000,Min=1,Max=1000),工人:(Busy=1,Free=32766,Min=1,Max=32767),本地CPU: n/a

我使用的是StackExchange.Redis版本:2.0.519

代码:

代码语言:javascript
复制
               IDatabase redisDB;
                try {
                    ConnectionMultiplexer redis = ConnectionMultiplexer.Connect($"{host}:{port},resolvedns=1,abortConnect=False,keepAlive=180,connectTimeout=10000");
                   
                    redisDB = redis.GetDatabase();
                    
                    if(redisDB==null)
                    {
                     **//Getting Error**
                      var messageId = redisDB.StreamAdd("event_stream", "foo_name", "bar_value");
                     //redisDB.StringSet("RedisKey", "RedisValue");
                    }
                  }

(或者)我也试图通过使用下面的代码来设置值。(得到同样的问题)

代码语言:javascript
复制
redisDB.StringSet("RedisKey", "RedisValue");

你能帮个忙吗。

EN

回答 2

Stack Overflow用户

发布于 2020-10-29 12:46:38

看起来这可能主要是格式化/级联问题,在这种情况下,最简单的方法是:不做。有一个强类型的对象模型使得很难出错:

代码语言:javascript
复制
var config = new ConfigurationOptions {
    EndPoints = {
        new DnsEndPoint(host, port),
        // new IPEndPoint(host, port), // <== or this if 'host' is an IPAddress
    },
    ResolveDns = true,
    AbortOnConnectFail = false,
    KeepAlive = 180,
    ConnectTimeout = 10000,
};
var muxer = ConnectionMultiplexer.Connect(config);

在内部,如果您给它一个string,它要做的第一件事就是解析string来创建上面的内容,所以您最好直接去做!

票数 2
EN

Stack Overflow用户

发布于 2020-10-29 12:41:51

ConnectionMultiplexer连接字符串中的变量"host“似乎不正确。看看您的异常“IPAddress上的UnableToConnect:6379/Interactive”。所以你的变量“端口”是正确的,它的值是6379。也许你把你的“主机”变量转换成字符串是错误的。因此,在它中有类型的变量(IPAddress),而不是实际值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64589212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档