Nano Hash - криптовалюты, майнинг, программирование

Ошибка подключения к Redis в приложении .net Core, размещенном в Azure.

У нас есть кеш Redis, размещенный в Azure, и мы используем следующее в качестве службы в нашем основном приложении .net:

services.AddSingleton<IConnectionMultiplexer>(provider => 
    ConnectionMultiplexer.Connect(Configuration.GetConnectionString("RedisConnection"))
);

Наша строка подключения похожа на следующую:

ourserver.redis.cache.windows.net:6380,password=******=,ssl=True,abortConnect=False,syncTimeout=4000

при получении из кеша мы не сталкиваемся с проблемами, но если мы добавляем в кеш, мы иногда получаем следующую ошибку:

«StackExchange.Redis.RedisConnectionException: не удалось подключиться к серверу(ам) Redis; чтобы создать отключенный мультиплексор, отключите AbortOnConnectFail. ConnectTimeout»

Я читал такие решения, как установка abortconnect на false и увеличение времени ожидания, но я реализовал это как строку подключения выше.

Если у вас есть предложения или вы думаете, что у нас есть проблема со строкой подключения, пожалуйста, сообщите.

Обновление: мы внедрили решение для решения проблемы с подключением, но теперь мы получаем это:

StackExchange.Redis.RedisConnectionException: No connection is available to service this operation

Ответы:


1

Какой у вас установлен connectTimeout? Можете ли вы попробовать увеличить это, чтобы увидеть, поможет ли это?

30.05.2017
  • См. строку подключения выше. Тайм-аут 4000 31.05.2017
  • 4000 - это ваш syncTimout (это тайм-аут вашей операции). Существует еще одно свойство, называемое connectTimeout, которое представляет собой тайм-аут, специально предназначенный для подключения. Если вы не изменили его, оно должно быть 5000 (значение по умолчанию). 31.05.2017
  • Большое спасибо. Каково рекомендуемое время ожидания подключения, пожалуйста? 31.05.2017
  • Значение по умолчанию 5000 должно быть достаточным, если только вы не собираетесь работать в разных регионах, и вам может потребоваться увеличить его. Я вижу, вы упомянули ›››› При получении из кеша мы не сталкиваемся с проблемами, но если мы добавляем в кеш, мы иногда получаем следующую ошибку. Это интересно, потому что только SET может потерпеть неудачу, но не GET. Не могли бы вы воссоздавать соединение каждый раз при выполнении SET? Можете ли вы показать, как вы настраиваете, а затем используете ConnectionMultiplexer? Потенциально это также может быть проблемой стабильности пакета Nuget в двоичных файлах NET Core. Какую версию пакета NuGet вы используете? 31.05.2017
  • Извините, кажется, что это происходит даже в get... после первой реализации isconnected() я теперь получаю эту ошибку: Нет доступного соединения для обслуживания этой операции 01.06.2017
  • Более подробно я объяснил здесь: stackoverflow.com/questions/44297125/ 01.06.2017
  • Спасибо. Я оставил несколько комментариев по адресу stackoverflow.com/questions/44297125/. 01.06.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..