В этой статье приведены ответы на распространенные вопросы о разработке кэша Redis для Azure.
Как мне начать работу с кэшем Azure для Redis?
Существует несколько способов приступить к работе с кэшем Azure для Redis.
- Вы можете ознакомиться с одним из наших руководств, доступных для .NET, ASP.NET, Java, Node.js и Python.
- Вы можете посмотреть видео Как создавать высокопроизводительные приложения с помощью кэша Microsoft Azure для Redis.
- Ознакомьтесь с документацией по примерам клиентов, которые поддерживают язык, используемый при разработке проекта. Существует множество клиентов Redis, которые можно использовать с кэшем Azure для Redis. Список клиентов Redis доступен на странице https://redis.io/clients.
Если у вас нет учетной записи Azure, то вы можете сделать следующее.
- Открыть бесплатную учетную запись Azure. Вы получаете кредиты, которые можно использовать, чтобы попробовать платные службы Azure. После израсходования кредитов ваша учетная запись не исчезнет. Вы сможете использовать ее для работы с бесплатными службами и функциями Azure.
- Активировать преимущества подписчика Visual Studio. Ваша подписка MSDN каждый месяц приносит вам кредиты, которые можно использовать для оплаты использования служб Azure.
Что делают параметры конфигурации StackExchange.Redis?
StackExchange.Redis имеет много параметров. В этом разделе рассказывается о некоторых распространенных параметрах. Более подробные сведения о параметрах StackExchange.Redis см. в статье StackExchange.Redis configuration (Конфигурация StackExchange.Redis).
Параметры конфигурации | Description | Рекомендация |
---|---|---|
AbortOnConnectFail | Если задано значение true, соединение не будет восстанавливаться после сбоя сети. | Установите значение false и позвольте StackExchange.Redis автоматически восстанавливать соединение. |
ConnectRetry | Количество повторных попыток подключения во время первоначального подключения. | Руководствуйтесь следующими примечаниями. |
ConnectTimeout | Время ожидания в миллисекундах для операций подключения. | Руководствуйтесь следующими примечаниями. |
Обычно подходят значения по умолчанию для клиента. Вы можете точнее настроить параметры в зависимости от своей рабочей нагрузки.
Повторы
- Общая рекомендация для ConnectRetry и ConnectTimeout — завершение работы при первой ошибке и повторение попытки. Эта рекомендация основана на вашей рабочей нагрузке и на том, сколько времени в среднем занимает в вашем клиенте выдача команды Redis и получение ответа.
- Вам не нужно проверять состояние и подключаться самостоятельно — StackExchange.Redis переподключается автоматически. Избегайте использования свойства ConnectionMultiplexer.IsConnected.
- Снежный ком — иногда возникает проблема, при которой вы выполняете повторные попытки, а они накапливаются и не удаляются. При возникновении снежного кома следует использовать алгоритм экспоненциальной задержки повтора, как описано в общих рекомендациях по повторным попыткам, опубликованных группой Microsoft Patterns & Practices.
Значения времени ожидания
Исследуйте вашу рабочую нагрузку и установите соответствующие значения. Если вы храните большие значения, установите более высокое значение времени ожидания.
Установите для
AbortOnConnectFail
значение false и позвольте StackExchange.Redis восстанавливать подключение.Используйте один экземпляр
ConnectionMultiplexer
с длительным сроком действия вместо создания нового подключения для каждого запроса. Пример управления подключением смRedisConnection
. в разделе "Подключение к кэшу" с помощью RedisConnection.Задайте в свойстве
ConnectionMultiplexer.ClientName
уникальное имя экземпляра приложения в целях диагностики.Используйте несколько экземпляров
ConnectionMultiplexer
для пользовательских рабочих нагрузок.Вы можете следовать этой модели, если у вас есть различные нагрузки в приложении. Например:
- можно иметь один мультиплексор для работы с большими ключами;
- можно иметь один мультиплексор для работы с небольшими ключами;
- Вы можете задать разные значения для времени ожидания подключения и логики повторных попыток для каждого
ConnectionMultiplexer
используемого. - Установите свойство
ClientName
в каждом мультиплексоре для облегчения диагностики.
После выполнения этого руководства может привести к более упрощенной задержке на каждый
ConnectionMultiplexer
.
Каких клиентов кэша Azure для Redis я могу использовать?
Одним из основных преимуществ Redis является то, что существует множество клиентов, поддерживающих множество языков разработки. Текущий список клиентов Redis см. здесь. Руководства, охватывающие несколько разных языков и клиентов, см. в статье Использование Кэша Azure для Redis.
Получение имени узла, портов и ключа доступа
Чтобы подключиться к серверу Кэш Azure для Redis, клиент кэша должен иметь имя узла, порты и ключ доступа кэша. Некоторые клиенты могут ссылаться на эти элементы с помощью немного разных имен. Имя узла, порты и ключи можно получить в портал Azure.
Чтобы получить ключ доступа для кэша, выполните приведенные далее действия.
- В портал Azure перейдите в кэш.
- В меню службы в разделе "Параметры" выберите "Проверка подлинности".
- На панели проверки подлинности перейдите на вкладку "Ключи доступа".
- Чтобы скопировать значение ключа доступа, щелкните значок копирования в поле ключа.
Чтобы получить имя узла и порты для кэша, выполните следующие действия.
- В портал Azure перейдите в кэш.
- В меню службы выберите "Обзор".
- В разделе Essentials для имени узла щелкните значок "Копировать", чтобы скопировать значение имени узла. Значение имени узла имеет форму
<DNS name>.redis.cache.windows.net
. - Для портов щелкните значок копирования , чтобы скопировать значения портов.
Существует ли локальный эмулятор кэша Azure для Redis?
Локальный эмулятор Кэша Azure для 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 для Redis
Почему в кэше Azure для Redis отсутствует ссылка на библиотеку классов MSDN?
Кэш Microsoft Azure для Redis основан на популярном продукте с открытым кодом — выполняющемся в памяти хранилище данных, Redis. Вы можете использовать широкий спектр клиентов Redis для многих языков программирования. Каждый клиент имеет собственный API, который вызывает экземпляр кэша Azure для Redis с помощью команд Redis.
Поскольку у каждого клиента свои особенности, вы не найдете единый централизованный справочник по классам в MSDN. У каждого клиента собственная справочная документация. Помимо справочной документации имеется несколько учебников, показывающих, как приступить к работе с Кэшем Azure для Redis, используя разные языки и клиенты кэша. Чтобы получить доступ к этим руководствам, см. в статью Краткое руководство. Использование кэша Azure для Redis с приложениями .NET. Похожие статьи вы найдете в таблице содержимого.
Можно ли использовать кэш 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 для Redis.
Связанный контент
Узнайте о других часто задаваемых вопросах про кэш Redis для Azure.