【问题标题】:StackExchange.Redis: No connection is available to service this operation: SETStackExchange.Redis:没有可用于服务此操作的连接:SET
【发布时间】:2017-06-17 22:24:19
【问题描述】:

我创建了一个在 .NET Core 1.1 上运行的控制台应用程序,我正在引用 StackExchange.Redis NuGet 包,版本 1.2.3

运行以下代码时,出现以下错误:

无法连接到 redis 服务器;要创建断开连接的多路复用器,请禁用 AbortOnConnectFail。 PING 上的 SocketFailure

using StackExchange.Redis;
using System;

namespace RedisConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
            IDatabase db = redis.GetDatabase();
            db.StringSet(BitConverter.GetBytes(5), "asdf");
        }
    }
}

如果我将 Connect 字符串更改为 "localhost,abortConnect=false",则会收到以下错误消息:

没有可用于服务此操作的连接:SET \u0005\0\0\0; localhost:6379/Subscription 上的 SocketFailure,来源:错误,输入缓冲区:0,未完成:0,最后读取:1 秒前,最后写入:1 秒前,未应答写入:27780 秒前,保持活动:60 秒,待定: 0, state: Connecting, last-heartbeat: never, last-mbeat: -1s ago, global: 20s ago

我按照Basics guide 开始使用这个库,但我不断收到上述错误。

我是否缺少某些代码或配置?

【问题讨论】:

  • 这两种情况的错误意味着客户端无法连接到你的redis服务器。您的 redis 服务器在本地主机上运行在哪个端口上?您是否配置了密码?可以连接 redis-cli 吗?

标签: c# .net stackexchange.redis


【解决方案1】:

听起来您可能只设置了 StackExchange.Redis 客户端,您是否安装并启动了本地 Redis 服务器?如果没有,请使用 HomeBrew 在您的机器上下载并安装 Redis

brew install redis
brew services start redis

然后启动服务器

redis-server

【讨论】:

    【解决方案2】:

    尝试在您的连接字符串下添加ssl=True,abortConnect=False,sslprotocols=tls12

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 2018-05-06
      • 2020-04-01
      • 2019-11-25
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      相关资源
      最近更新 更多