В этой статье приведены ответы на распространенные вопросы о разработке кэша Redis для Azure.
Внимание
Кэш Azure для Redis объявил о графике вывода из эксплуатации для всех SKU. Мы рекомендуем как можно скорее перенести существующие экземпляры Azure Cache для Redis на управляемые Azure Managed Redis.
Руководство по миграции:
- Перенос уровней Basic, Standard и Premium в управляемую службу Redis на платформе Azure
- Перенос уровня Enterprise в Управляемый 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).
| Параметры конфигурации | Описание | Рекомендация |
|---|---|---|
| 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.Чтобы получить ключи доступа, выберите "Показать ключи доступа".
В области CacheKeys отображаются ключи.
Вы также можете выбрать проверку подлинности в разделе "Параметры " в меню навигации слева и выбрать вкладку "Ключи доступа ".
Существует ли локальный эмулятор кэша 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.