В этой статье приведены ответы на распространенные вопросы о разработке кэша 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 в разделе Подключение к кэшу с повторным отключением. - Задайте в свойстве
ConnectionMultiplexer.ClientName
уникальное имя экземпляра приложения в целях диагностики. - Используйте несколько экземпляров
ConnectionMultiplexer
для пользовательских рабочих нагрузок.- Вы можете следовать этой модели, если в приложении имеется меняющаяся нагрузка. Например:
- можно иметь один мультиплексор для работы с большими ключами;
- можно иметь один мультиплексор для работы с небольшими ключами;
- можно задать разные значения времени ожидания подключения и логики повторов для каждого используемого ConnectionMultiplexer.
- Установите свойство
ClientName
в каждом мультиплексоре для облегчения диагностики. - Это руководство может привести к более упрощенной задержке на каждый
ConnectionMultiplexer
.
Каких клиентов кэша Azure для Redis я могу использовать?
Одним из основных преимуществ Redis является то, что существует множество клиентов, поддерживающих множество языков разработки. Текущий список клиентов Redis см. здесь. Руководства, охватывающие несколько разных языков и клиентов, см. в статье Использование Кэша Azure для Redis.
Получение имени узла, портов и ключей доступа с помощью портала Azure
Чтобы подключить сервер Кэша Azure для Redis, для клиента кэша необходимо указать имя узла, порты и ключ для кэша. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен. Вы можете получить имя узла, порты и ключи на портале Azure.
Чтобы получить ключи доступа, выберите "Проверка подлинности " в меню "Ресурс". Затем откройте вкладку "Ключи доступа".
Чтобы получить имя узла и порты для кэша, выберите "Обзор " в меню "Ресурс". Имя узла имеет вид <DNS-имя>.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 и ее общие статьи в оглавлении.
Можно ли использовать кэш 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.