首页 新闻 会员 周边 捐助

ASP.NET Core中StackExchange.Redis连接redis服务器的问题

0
悬赏园豆:30 [待解决问题]

ASP.NET Core 站点运行于 Linux 服务器,运行时在 StackExchange.Redis 中出现如下的错误:

StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. Timeout
   at StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Func`1 multiplexerFactory, TextWriter log)
   at Microsoft.Extensions.Caching.Redis.RedisCache.Connect()
   at Microsoft.Extensions.Caching.Redis.RedisCache.GetAndRefresh(String key, Boolean getData)

下面是 ConnectImpl() 方法的实现代码:

private static ConnectionMultiplexer ConnectImpl(Func<ConnectionMultiplexer> multiplexerFactory, TextWriter log)
{
    IDisposable killMe = null;
    try
    {
        var muxer = multiplexerFactory();
        killMe = muxer;
        // note that task has timeouts internally, so it might take *just over* the regular timeout
        var task = muxer.ReconfigureAsync(true, false, log, null, "connect");

        if (!task.Wait(muxer.SyncConnectTimeout(true)))
        {
            task.ObserveErrors();
            if (muxer.RawConfig.AbortOnConnectFail)
            {
                throw ExceptionFactory.UnableToConnect("Timeout");
            }
        }
        if (!task.Result) throw ExceptionFactory.UnableToConnect(muxer.failureMessage);
        killMe = null;
        return muxer;
    }
    finally
    {
        if (killMe != null) try { killMe.Dispose(); } catch { }
    }
}
dudu的主页 dudu | 高人七级 | 园豆:30778
提问于:2017-01-04 13:12
< >
分享
所有回答(7)
0

可嘉啊,搞了这么多天了~~

看来你准备的这系统比较大,直接就上redis。

花飘水流兮 | 园豆:13615 (专家六级) | 2017-01-04 15:26
0

一定要这么复杂?我是简单调用,目前没看到有问题,只是觉得比.NET里面的内存缓存慢些

weisp | 园豆:3 (初学一级) | 2017-01-05 18:20

慢的原因是使用错了吧,你是不是每次都创建一个 ConnectionMultiplexer

官方的使用方法是,用一个静态单例对象就行了,但是并发有很多问题,如楼主说的 Timeout

支持(0) 反对(0) nicye | 园豆:208 (菜鸟二级) | 2017-01-06 16:33

@nicye: 嗯,改成共用了,还是慢,高频使用的还是要放内存好点

支持(0) 反对(0) weisp | 园豆:3 (初学一级) | 2017-05-04 06:40
1

我踩过这个坑,解决方法:放弃

用这个吧 https://github.com/2881099/csredis

nicye | 园豆:208 (菜鸟二级) | 2017-01-06 16:32
0

这个问题解决了么,刚使用redis 碰见了相同的问题?dudu

Impossible | 园豆:72 (初学一级) | 2017-10-24 15:03

当时没找到问题的真正原因,后来好了

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2017-10-24 16:48

@dudu: 什么原因能说说吗?正准备用这个组件

支持(0) 反对(0) Lyghost | 园豆:78 (初学一级) | 2017-12-24 23:21
0

我也遇到了这个问题,该怎么解决?

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-02-10 22:05
0

.net core部署到阿里云k8s容器中使用StackExchange.Redis 遇到同样的问题,该如何解决

福祿娃 | 园豆:76 (初学一级) | 2018-07-27 13:57

redis 服务器是自己搭建的还是用的阿里云的?

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2018-07-27 14:38

@dudu: 他们把密码复制错了,没有问题,谢谢啊

支持(0) 反对(0) 福祿娃 | 园豆:76 (初学一级) | 2018-08-22 15:24
0

先mark再说

Coderrrrrr | 园豆:212 (菜鸟二级) | 2019-12-20 14:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册