首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到redis服务器;无法创建断开连接的多路复用器

无法连接到redis服务器;无法创建断开连接的多路复用器
EN

Stack Overflow用户
提问于 2015-06-17 15:07:58
回答 10查看 92.3K关注 0票数 52

我有下面的代码连接到蔚蓝红色缓存。

代码语言:javascript
复制
   public class CacheConnectionHelper
    {
        private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
        {
            return ConnectionMultiplexer.Connect(SettingsHelper.AzureRedisCache);
        });

        public static ConnectionMultiplexer Connection
        {
            get
            {
                return lazyConnection.Value;
            }
        }
    }

我用这个方法

代码语言:javascript
复制
public static List<Models.Module> GetModules()
        {
            IDatabase cache = CacheConnectionHelper.Connection.GetDatabase();
            List<Models.Module> listOfModules = new List<Models.Module>();
            listOfModules = (List<Models.Module>)cache.Get("ApplicationModules");
            if (listOfModules == null)
            {
                listOfModules = dbApp.Modulos.ToList();
                cache.Set("ApplicationModules", listOfModules, TimeSpan.FromMinutes(SettingsHelper.CacheModuleNames));
                return listOfModules;
            }
            else {
                return listOfModules;
            }
        }

然而,每天有1到2次这样的例外:

附加信息:无法连接到redis服务器;要创建断开连接的多路复用器,禁用AbortOnConnectFail。UnableToResolvePhysicalConnection on PING

问题是,如果缓存连接失败,我如何重构此代码以转到数据库?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2015-06-18 14:45:28

您所得到的错误通常是您尚未在连接字符串中设置abortConnect=false的一个标志。abortConnect的默认值为true,这使得StackExchange.Redis不会在某些条件下自动重新连接到服务器。我们强烈建议您在连接字符串中设置abortConnect=false,以便在出现网络闪点时,SE.Redis将在后台自动重新连接。

票数 87
EN

Stack Overflow用户

发布于 2017-05-01 05:18:09

对于那些钻研别人的代码的初学者来说,他们会面临这样的问题:

代码语言:javascript
复制
if (RedisConn == null)
{ 
    ConfigurationOptions option = new ConfigurationOptions
    {
        AbortOnConnectFail = false,
        EndPoints = { redisEndpoint }
    };
    RedisConn = ConnectionMultiplexer.Connect(option);
}
票数 20
EN

Stack Overflow用户

发布于 2016-11-04 10:48:49

您还应该注意错误消息的最后一部分,因为它似乎提供了关于连接失败原因的非常有用的详细信息。

就你而言:

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

我的案子:

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

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

https://stackoverflow.com/questions/30895507

复制
相关文章

相似问题

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