我正在尝试从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
代码:
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");
}
}(或者)我也试图通过使用下面的代码来设置值。(得到同样的问题)
redisDB.StringSet("RedisKey", "RedisValue");你能帮个忙吗。
发布于 2020-10-29 12:46:38
看起来这可能主要是格式化/级联问题,在这种情况下,最简单的方法是:不做。有一个强类型的对象模型使得很难出错:
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来创建上面的内容,所以您最好直接去做!
发布于 2020-10-29 12:41:51
ConnectionMultiplexer连接字符串中的变量"host“似乎不正确。看看您的异常“IPAddress上的UnableToConnect:6379/Interactive”。所以你的变量“端口”是正确的,它的值是6379。也许你把你的“主机”变量转换成字符串是错误的。因此,在它中有类型的变量(IPAddress),而不是实际值。
https://stackoverflow.com/questions/64589212
复制相似问题