Часто задаваемые вопросы по разработке Azure Cache для Redis

В этой статье приведены ответы на распространенные вопросы о разработке кэша Redis для Azure.

Внимание

Кэш Azure для Redis объявил о графике вывода из эксплуатации для всех SKU. Мы рекомендуем как можно скорее перенести существующие экземпляры Azure Cache для Redis на управляемые Azure Managed Redis.

Руководство по миграции:

Дополнительные сведения о выходе на пенсию:

Как мне начать работу с кэшем Azure для Redis?

Существует несколько способов приступить к работе с кэшем Azure для Redis.

Если у вас нет учетной записи Azure, то вы можете сделать следующее.

  • Открыть бесплатную учетную запись Azure. Вы получаете кредиты, которые можно использовать, чтобы попробовать платные службы Azure. После израсходования кредитов ваша учетная запись не исчезнет. Вы сможете использовать ее для работы с бесплатными службами и функциями Azure.
  • Активировать преимущества подписчика Visual Studio. Ваша подписка MSDN каждый месяц приносит вам кредиты, которые можно использовать для оплаты использования служб Azure.

Что делают параметры конфигурации StackExchange.Redis?

StackExchange.Redis имеет много параметров. В этом разделе рассказывается о некоторых распространенных параметрах. Более подробные сведения о параметрах StackExchange.Redis см. в статье StackExchange.Redis configuration (Конфигурация StackExchange.Redis).

Параметры конфигурации Описание Рекомендация
AbortOnConnectFail Если задано значение true, соединение не будет восстанавливаться после сбоя сети. Установите значение false и позвольте StackExchange.Redis автоматически восстанавливать соединение.
Повторное подключение Количество повторных попыток подключения во время первоначального подключения. Руководствуйтесь следующими примечаниями.
Время ожидания подключения Время ожидания в миллисекундах для операций подключения. Руководствуйтесь следующими примечаниями.

Обычно подходят значения по умолчанию для клиента. Вы можете точнее настроить параметры в зависимости от своей рабочей нагрузки.

Повторные попытки

  • Общая рекомендация для ConnectRetry и ConnectTimeout — завершение работы при первой ошибке и повторение попытки. Эта рекомендация основана на вашей рабочей нагрузке и на том, сколько времени в среднем занимает в вашем клиенте выдача команды Redis и получение ответа.
  • Вам не нужно проверять состояние и подключаться самостоятельно — StackExchange.Redis переподключается автоматически. Избегайте использования свойства ConnectionMultiplexer.IsConnected.
  • Снежный ком — иногда возникает проблема, при которой вы выполняете повторные попытки, а они накапливаются и не удаляются. При возникновении эффекта снежного кома следует использовать алгоритм экспоненциального отката, как описано в общих рекомендациях по повторным попыткам, опубликованных группой Microsoft Patterns & Practices.

Значения времени ожидания

  • Исследуйте вашу рабочую нагрузку и установите соответствующие значения. Если вы храните большие значения, установите более высокое значение времени ожидания.
  • Установите для AbortOnConnectFail значение false и позвольте StackExchange.Redis восстанавливать подключение.
  • Используйте один экземпляр ConnectionMultiplexer с длительным сроком действия вместо создания нового подключения для каждого запроса.
  • Задайте в свойстве ConnectionMultiplexer.ClientName уникальное имя экземпляра приложения в целях диагностики.
  • Используйте несколько экземпляров ConnectionMultiplexer для пользовательских рабочих нагрузок.
    • Вы можете следовать этой модели, если в приложении имеется меняющаяся нагрузка. Например:
    • можно иметь один мультиплексор для работы с большими ключами;
    • можно иметь один мультиплексор для работы с небольшими ключами;
    • Можно задать разные значения тайм-аутов подключения и логики повторов для каждого используемого ConnectionMultiplexer.
    • Установите свойство ClientName в каждом мультиплексоре для облегчения диагностики.
    • Это руководство может привести к более оптимизированной задержке для каждого ConnectionMultiplexer.

Каких клиентов кэша Azure для Redis я могу использовать?

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

Получение имени узла кэша, порта и ключей доступа на портале Azure

Чтобы подключиться к кэшу Redis Azure, клиент кэша должен иметь имя узла кэша, порты и ключи. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен. Следуйте этим инструкциям, чтобы получить имя узла кэша, порты и ключи на портале Azure.

  • Получите имя узла из кэша на странице обзора. Имя узла имеет форму <cachename>.redis.cache.windows.net.

  • Выберите ссылку рядом с портами , чтобы получить порты. Кэши уровня Enterprise и Enterprise Flash используют порт 10000. Кэши уровня "Базовый", "Стандартный" и "Премиум" используют порт 6380 для подключений с использованием TLS или порт 6379 для подключений без использования TLS.

  • Чтобы получить ключи доступа, выберите "Показать ключи доступа".

    Снимок экрана: свойства кэша Redis для Azure.

    В области CacheKeys отображаются ключи.

    Снимок экрана: панель ключей доступа к кэшу Redis для Azure.

    Вы также можете выбрать проверку подлинности в разделе "Параметры " в меню навигации слева и выбрать вкладку "Ключи доступа ".

    Снимок экрана: ключи доступа кэша Redis для Azure.

Существует ли локальный эмулятор кэша Azure для Redis?

Локальный эмулятор Azure Cache для Redis недоступен. Однако вы можете запустить копию community Redis на локальном компьютере и подключиться к ней, чтобы получить аналогичный интерфейс с локальным эмулятором кэша, как показано в следующем примере:

private static Lazy<ConnectionMultiplexer>
    lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
    {
        // Connect to a locally running instance of Redis to simulate
        // a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

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

Redis работает изначально в Linux, но вы также можете использовать подсистема Windows для Linux для запуска Redis на компьютере с Windows. Дополнительные сведения см. в разделе Установка Redis на Windows. При желании вы можете сконфигурировать файл redis.conf, чтобы более точно соответствовать параметрам кэша по умолчанию для вашего веб-кэша Azure для Redis.

Как выполнять команды Redis?

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

При наличии кэша уровня "Стандартный" или "Премиум" вы можете запускать команды Redis с помощью консоли Redis. Консоль Redis — это защищенный способ выполнения команд Redis на портале Azure.

Также можно использовать программы командной строки Redis. Чтобы использовать их, см. Использование командной строки Redis с Azure Cache для Redis

Почему в кэше Azure для Redis отсутствует ссылка на библиотеку классов MSDN?

Кэш Microsoft Azure для Redis основан на популярном хранилище данных в памяти с открытым исходным кодом, Redis. Вы можете использовать широкий спектр клиентов Redis для многих языков программирования. Каждый клиент имеет собственный API, который вызывает экземпляр кэша Azure для Redis с помощью команд Redis.

Поскольку у каждого клиента свои особенности, вы не найдете единый централизованный справочник по классам в MSDN. У каждого клиента собственная справочная документация. Помимо справочной документации имеется несколько учебников, показывающих, как приступить к работе с Кэшем Azure для Redis, используя разные языки и клиенты кэша.

Можно ли использовать кэш Azure для Redis как кэш сеанса PHP?

Да. Для использования кэша Azure для Redis в качестве кэша сеанса PHP укажите строку подключения к экземпляру кэша Azure для Redis в пути session.save_path.

Внимание

При использовании кэша Azure для Redis в качестве кэша сеанса PHP необходимо кодировать в URL-адресе ключ безопасности, используемый для подключения к кэшу, как показано в следующем примере:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Если ключ не закодирован по стандарту URL, может появиться исключение, например: Failed to parse session.save_path

Дополнительные сведения об использовании кэша Azure для Redis в качестве кэша сеанса PHP с клиентом PhpRedis см. в разделе Обработчик сеанса PHP.

Что такое базы данных Redis?

Базы данных Redis — это просто логическое разделение данных внутри одного экземпляра Redis. Кэш-память совместно используется всеми базами данных, и фактический объем памяти, используемый определенной базой данных, зависит от пар "ключ-значение", хранящихся в ней. Например, объем кэша C6 составляет 53 ГБ, а P5 — 120 ГБ. Вы можете предоставить все 53 или 120 ГБ одной базе данных или разделить их между несколькими базами данных.

Примечание.

При использовании кэша Azure для Redis уровня "Премиум" с включенной кластеризацией доступна только база данных 0. Это ограничение является внутренним ограничением Redis и не является специфичным для Azure Cache для Redis.

Узнайте о других часто задаваемых вопросах про кэш Redis для Azure.