Подключитесь к Azure Redis Cache через HTTP - PullRequest
0 голосов
/ 08 ноября 2018

Я использую «ServiceStack.Redis» для подключения к Redis, и он корректно работает на моей машине для разработки.

В основном, я открываю соединение через эту линию:

client = new RedisClient(host);

Где host на моей машине для разработки - "localhost".

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

XXX.redis.cache.windows.net, SSL = ложный, пароль = YYY

Создание RedisClient, похоже, работает, но когда я пытаюсь выполнить операцию (первая из которых должна быть выполнена client.RemoveByPattern("...")), я получаю следующую ошибку:

Сведения об исключении: System.Net.Sockets.SocketException: такого хоста нет Известно

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

Все примеры, которые я нашел через Интернет, используют «ConnectionMultiplexer», но этот класс, похоже, не найден в пакете NuGet «ServiceStack.Redis».

Что я делаю не так?

1 Ответ

0 голосов
/ 18 января 2019

У меня была такая же (похожая?) Проблема с подключением к Azure Redis с помощью ServiceStack, в конце концов он работал с правильным синтаксисом для соединения, которое работало для меня. XXX.redis.cache.windows.net?ssl=true

Здесь вы найдете некоторую помощь https://github.com/ServiceStack/ServiceStack.Redis,, но для цитирования в разделе «Строки подключения» приведены примеры;

"Строки подключения Redis были расширены для поддержки более универсального формата URI, который теперь может захватывать большинство настроек клиента Redis в одной строке подключения (сродни строкам подключения к БД).

Redis Connection Strings поддерживает несколько URI-подобных форматов, от простого имени хоста или IP-адреса и пары портов до полностью определенного URI с несколькими параметрами, указанными в QueryString. "

Некоторые примеры поддерживаемых форматов:

localhost
127.0.0.1:6379
redis://localhost:6379
password@localhost:6379
clientid:password@localhost:6379
redis://clientid:password@localhost:6380?ssl=true&db=1

ПРИМЕЧАНИЕ. Я использовал последний пример здесь, но без бита redis: //, поскольку обнаружил, что в Azure это не требуется.

...