Вопросы и ответы по кэшу Redis для AzureAzure Cache for Redis FAQ

Ответы на часто задаваемые вопросы, шаблоны и рекомендации по поводу кэша Azure для Redis.Learn the answers to common questions, patterns, and best practices for Azure Cache for Redis.

Мне не удалось найти ответ на свой вопрос. Что делать?What if my question isn't answered here?

Если вашего вопроса нет в списке, сообщите нам об этом, и мы поможем найти ответ.If your question isn't listed here, let us know and we'll help you find an answer.

  • Можно опубликовать вопрос в комментариях в конце раздела часто задаваемых вопросов и обсудить данную статью с командой разработчиков кэша Azure и другими участниками сообщества.You can post a question in the comments at the end of this FAQ and engage with the Azure Cache team and other community members about this article.
  • Чтобы охватить большую аудиторию, можно опубликовать вопрос на форуме MSDN по кэшу Azure и обсудить его с командой разработчиков кэша Azure и другими участниками сообщества.To reach a wider audience, you can post a question on the Azure Cache MSDN Forum and engage with the Azure Cache team and other members of the community.
  • Если вы хотите сделать запрос на функцию, то можете отправить свои запросы и предложения на форуме пользователей кэша Azure для Redis.If you want to make a feature request, you can submit your requests and ideas to Azure Cache for Redis User Voice.
  • Можно также отправить нам внешний отзыв о кэше Azureпо электронной почте.You can also send an email to us at Azure Cache External Feedback.

Основные сведения о кэше Azure для RedisAzure Cache for Redis basics

Часто задаваемые вопросы в этом разделе охватывают некоторые основные сведения о кэше Azure для Redis.The FAQs in this section cover some of the basics of Azure Cache for Redis.

Ниже приведены часто задаваемые вопросы об основных понятиях и использовании кэша Azure для Redis, ответы на которые даны в других разделах часто задаваемых вопросов.The following FAQs cover basic concepts and questions about Azure Cache for Redis and are answered in one of the other FAQ sections.

Часто задаваемые вопросы о планированииPlanning FAQs

Часто задаваемые вопросы о разработкеDevelopment FAQs

Часто задаваемые вопросы о безопасностиSecurity FAQs

Часто задаваемые вопросы о рабочей средеProduction FAQs

Часто задаваемые вопросы о мониторинге и устранении неполадокMonitoring and troubleshooting FAQs

Вопросы, обсуждаемые в этом разделе, посвящены общим проблемам мониторинга и устранения неполадок.The FAQs in this section cover common monitoring and troubleshooting questions. Для получения дополнительной информации о мониторинге и устранении неполадок в экземплярах Azure для экземпляров Redis см.For more information about monitoring and troubleshooting your Azure Cache for Redis instances, see How to monitor Azure Cache for Redis and the various troubleshoot guides.

Часто задаваемые вопросы о предыдущих предложениях кэшаPrior Cache offering FAQs

Что такое кэш Azure для Redis?What is Azure Cache for Redis?

Кэш Azure для Redis основан на популярном программном обеспечении Redis с открытым кодом.Azure Cache for Redis is based on the popular open-source software Redis. Он предоставляет вам доступ к безопасному выделенному кэшу Azure для Redis, управляемому корпорацией Майкрософт и доступному из любых приложений в Azure.It gives you access to a secure, dedicated Azure Cache for Redis, managed by Microsoft, and accessible from any application within Azure. Более подробный обзор представлен на странице кэша Azure для Redis на сайте Azure.com.For a more detailed overview, see the Azure Cache for Redis product page on Azure.com.

Как мне начать работу с кэшем Azure для Redis?How can I get started with Azure Cache for Redis?

Существует несколько способов приступить к работе с кэшем Azure для Redis.There are several ways you can get started with Azure Cache for Redis.

Если у вас нет учетной записи Azure, то вы можете сделать следующее.If you don't already have an Azure account, you can:

Какое предложение и размер кэша Azure для Redis мне следует использовать?What Azure Cache for Redis offering and size should I use?

Все предложения кэша Azure для Redis обеспечивают разные уровни параметров размера, пропускной способности, высокой доступности и Cоглашения об уровне обслуживания.Each Azure Cache for Redis offering provides different levels of size, bandwidth, high availability, and SLA options.

Ниже приведены рекомендации по выбору предложения кэша.The following are considerations for choosing a Cache offering.

  • Память. Уровни Базовый и Стандартный предлагают от 250 МБ до 53 ГБ.Memory: The Basic and Standard tiers offer 250 MB – 53 GB. Уровень Premium предлагает до 1,2 ТБ (как кластер) или 120 ГБ (не кластеризированный).The Premium tier offers up to 1.2 TB (as a cluster) or 120 GB (non-clustered). Для получения дополнительной Azure Cache for Redis Pricingинформации см.For more information, see Azure Cache for Redis Pricing.
  • Производительность сети: если у вас есть рабочая нагрузка, которая требует высокой пропускной способности, то уровень "Премиум" предоставит большую пропускную способность по сравнению с уровнями "Стандартный" или "Базовый".Network Performance: If you have a workload that requires high throughput, the Premium tier offers more bandwidth compared to Standard or Basic. Также в рамках каждого уровня пропускная способность для кэшей большего размера выше из-за виртуальной машины, на которой размещен кэш.Also within each tier, larger size caches have more bandwidth because of the underlying VM that hosts the cache. Для получения дополнительной информации смотрите следующую таблицу.For more information, see the following table.
  • Пропускная способность: уровень Премиум предлагает максимальную доступную пропускную способность.Throughput: The Premium tier offers the maximum available throughput. При достижении сервером кэширования или клиентом пределов пропускной способности на стороне клиента могут возникнуть простои.If the cache server or client reaches the bandwidth limits, you may receive timeouts on the client side. Дополнительные сведения приведены в таблице ниже.For more information, see the following table.
  • Высокая доступность/SLA: Azure Cache для Redis гарантирует, что кэш Standard/Premium доступен не менее 99,9% времени.High Availability/SLA: Azure Cache for Redis guarantees that a Standard/Premium cache is available at least 99.9% of the time. Дополнительные сведения о Cоглашении об уровне обслуживания см. на странице Соглашение об уровне обслуживания для Управляемой службы кэша.To learn more about our SLA, see Azure Cache for Redis Pricing. Соглашение об уровне обслуживания распространяется только на подключения к конечным точкам кэша.The SLA only covers connectivity to the Cache endpoints. Соглашение об уровне обслуживания не включает защиту от потери данных.The SLA does not cover protection from data loss. Для повышения устойчивости к потере данных рекомендуется использовать функцию постоянного хранения данных Redis уровня Премиум.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss.
  • Постоянное хранение данных Redis. Уровень Премиум позволяет постоянно хранить данные кэша в учетной записи хранения Azure.Redis Data Persistence: The Premium tier allows you to persist the cache data in an Azure Storage account. В кэше уровня "Базовый" или "Стандартный" все данные хранятся только в памяти.In a Basic/Standard cache, all the data is stored only in memory. Основные проблемы инфраструктуры могут привести к потенциальной потере данных.Underlying infrastructure issues might result in potential data loss. Для повышения устойчивости к потере данных рекомендуется использовать функцию постоянного хранения данных Redis уровня Премиум.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss. Кэш Azure для Redis предлагает варианты RDB и AOF (ожидается в ближайшее время) для сохраняемости Redis.Azure Cache for Redis offers RDB and AOF (coming soon) options in Redis persistence. Дополнительные сведения см. в статье How to configure persistence for a Premium Azure Cache for Redis (Как настроить сохраняемость для кэша Azure для Redis категории "Премиум").For more information, see How to configure persistence for a Premium Azure Cache for Redis.
  • Redis Cluster: Для создания кэшов больше 120 ГБ или для анализа данных в нескольких узлах Redis можно использовать кластеризующую сяризм Redis, который доступен на уровне Premium.Redis Cluster: To create caches larger than 120 GB, or to shard data across multiple Redis nodes, you can use Redis clustering, which is available in the Premium tier. Каждый узел состоит из пары кэшей (основной кэш и реплика) для обеспечения высокой доступности.Each node consists of a primary/replica cache pair for high availability. Дополнительные сведения см. в статье How to configure clustering for a Premium Azure Cache for Redis (Настройка кластеризации кэша Azure для Redis категории "Премиум").For more information, see How to configure clustering for a Premium Azure Cache for Redis.
  • Улучшенная безопасность и сетевая изоляция: развертывание виртуальной сети Azure (VNET) обеспечивает повышенную безопасность и изоляцию кэша Azure для Redis, а также подсетей, политик управления доступом и других функций для дальнейшего ограничения доступа.Enhanced security and network isolation: Azure Virtual Network (VNET) deployment provides enhanced security and isolation for your Azure Cache for Redis, as well as subnets, access control policies, and other features to further restrict access. Дополнительные сведения см. в статье How to configure Virtual Network support for a Premium Azure Cache for Redis (Настройка поддержки виртуальной сети для кэша Azure для Redis уровня "Премиум").For more information, see How to configure Virtual Network support for a Premium Azure Cache for Redis.
  • Настройка Redis: на уровнях "Стандартный" и "Премиум" вы можете настроить уведомления пространства ключей в Redis.Configure Redis: In both the Standard and Premium tiers, you can configure Redis for Keyspace notifications.
  • Максимальное число подключений клиентов: уровень Премиум обеспечивает максимальное число клиентов, которые могут подключаться к Redis, причем чем больше размер кэша, тем больше число подключений.Maximum number of client connections: The Premium tier offers the maximum number of clients that can connect to Redis, with a higher number of connections for larger sized caches. Кластеризация не увеличивает число подключений, доступных для кластеризованного кэша.Clustering does not increase the number of connections available for a clustered cache. Дополнительные сведения см. на странице Цены на Кэш Azure для Redis.For more information, see Azure Cache for Redis pricing.
  • Выделенные ядра для Redis Server: В уровне Premium все размеры кэша имеют выделенное ядро для Redis.Dedicated Core for Redis Server: In the Premium tier, all cache sizes have a dedicated core for Redis. На уровнях "Базовый" и "Стандартный" отдельное ядро выделяется для размера C1 и выше.In the Basic/Standard tiers, the C1 size and above have a dedicated core for Redis server.
  • Redis является однопоточным , поэтому наличие более двух ядер не предоставляет дополнительных преимуществ по сравнению с двумя ядрами, но виртуальные машины большего размера обычно имеют большую пропускную способность, чем виртуальные машины меньшего размера.Redis is single-threaded so having more than two cores does not provide additional benefit over having just two cores, but larger VM sizes typically have more bandwidth than smaller sizes. При достижении сервером кэширования или клиентом пределов пропускной способности на стороне клиента возникают простои.If the cache server or client reaches the bandwidth limits, then you receive timeouts on the client side.
  • Повышение производительности: кэши на уровне "Премиум" разворачиваются на оборудовании с более быстрыми процессорами и обеспечивают повышенную производительность по сравнению с уровнями "Базовый" и "Стандартный".Performance improvements: Caches in the Premium tier are deployed on hardware that has faster processors, giving better performance compared to the Basic or Standard tier. Кэши уровня Премиум обладают более высокой пропускной способностью и меньшей задержкой.Premium tier Caches have higher throughput and lower latencies.

Производительность кэша Azure для RedisAzure Cache for Redis performance

В следующей таблице показаны максимальные значения пропускной способности, наблюдаемые при тестировании разных размеров кэша уровней "Стандартный" или "Премиум" с помощью redis-benchmark.exe из виртуальной машины IaaS для конечной точки кэша Azure для Redis.The following table shows the maximum bandwidth values observed while testing various sizes of Standard and Premium caches using redis-benchmark.exe from an IaaS VM against the Azure Cache for Redis endpoint. Для пропускной способности SSL используется redis-benchmark со stunnel для подключения к конечной точке кэша Azure для Redis.For SSL throughput, redis-benchmark is used with stunnel to connect to the Azure Cache for Redis endpoint.

Примечание

Эти значения не гарантируются и для них не предусмотрено соглашение об уровне обслуживания, однако они должны быть типичными.These values are not guaranteed and there is no SLA for these numbers, but should be typical. Чтобы определить подходящий объем кэша для вашего приложения, вам следует загрузить его тестирование.You should load test your own application to determine the right cache size for your application. Это количество может изменяться при периодическом обновлении результатов.These numbers might change as we post newer results periodically.

Из этой таблицы можно сделать следующие выводы:From this table, we can draw the following conclusions:

  • Пропускная способность кэшей равного размера для уровня "Премиум" выше, чем для уровня "Стандартный".Throughput for the caches that are the same size is higher in the Premium tier as compared to the Standard tier. Например, с 6 ГБ кэша пропускная стоимость P1 составляет 180 000 запросов в секунду (RPS) по сравнению с 100 000 RPS для C3.For example, with a 6 GB Cache, throughput of P1 is 180,000 requests per second (RPS) as compared to 100,000 RPS for C3.
  • С кластеризацией Redis пропускная способность линейно увеличивается по мере увеличения числа сегментов (узлов) в кластере.With Redis clustering, throughput increases linearly as you increase the number of shards (nodes) in the cluster. Например, если вы создаете кластер P4 из 10 осколков, то доступная пропускная информация составляет 400 000 и 10 и 4 миллиона RPS.For example, if you create a P4 cluster of 10 shards, then the available throughput is 400,000 * 10 = 4 million RPS.
  • Пропускная способность для ключей большего размера для уровня "Премиум" выше, чем для уровня "Стандартный".Throughput for bigger key sizes is higher in the Premium tier as compared to the Standard Tier.
Ценовая категорияPricing tier РазмерSize Ядра ЦПCPU cores Доступная пропускная способностьAvailable bandwidth Размер значения 1-КБ1-KB value size Размер значения 1-КБ1-KB value size
Размеры кэша уровня СтандартныйStandard cache sizes Мегабит в секунду (Мбит/с) или Мегабайт в секунду (МБ/с)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Запросов в секунду (без SSL)Requests per second (RPS) Non-SSL Запросов в секунду (с SSL)Requests per second (RPS) SSL
C0C0 250 МБ250 MB SharedShared 100 / 12,5100 / 12.5 15 00015,000 75007,500
C1C1 1 ГБ1 GB 11 500 / 62,5500 / 62.5 38 00038,000 20 72020,720
C2C2 2,5 ГБ2.5 GB 22 500 / 62,5500 / 62.5 41 00041,000 37 00037,000
C3C3 6 ГБ6 GB 44 1000 / 1251000 / 125 100 000100,000 90 00090,000
C4C4 13 ГБ13 GB 22 500 / 62,5500 / 62.5 60 00060,000 55 00055,000
C5C5 26 ГБ26 GB 44 1,000 / 1251,000 / 125 102 000102,000 93 00093,000
C6C6 53 ГБ53 GB 88 2,000 / 2502,000 / 250 126 000126,000 120 000120,000
Размеры кэша уровня ПремиумPremium cache sizes Число ядер ЦП на сегментCPU cores per shard Мегабит в секунду (Мбит/с) или Мегабайт в секунду (МБ/с)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Запросов в секунду (без SSL) для каждого сегментаRequests per second (RPS) Non-SSL, per shard Запросов в секунду (с SSL) для каждого сегментаRequests per second (RPS) SSL, per shard
P1P1 6 ГБ6 GB 22 1,500 / 187.51,500 / 187.5 180,000180,000 172 000172,000
P2P2 13 ГБ13 GB 44 3,000 / 3753,000 / 375 350 000350,000 341 000341,000
P3P3 26 ГБ26 GB 44 3,000 / 3753,000 / 375 350 000350,000 341 000341,000
P4P4 53 ГБ53 GB 88 6,000 / 7506,000 / 750 400 000400,000 373 000373,000
P5P5 120 ГБ120 GB 2020 6,000 / 7506,000 / 750 400 000400,000 373 000373,000

Инструкции по настройке stunnel и скачиванию инструментов Redis, таких как redis-benchmark.exe, см. в разделе Как выполнять команды Redis?.For instructions on setting up stunnel or downloading the Redis tools such as redis-benchmark.exe, see the How can I run Redis commands? section.

В каком регионе следует размещать мой кэш?In what region should I locate my cache?

Для лучшей производительности и минимальной задержки размещайте свой кэш Azure для Redis в одном регионе с вашим кэшируемым клиентским приложением.For best performance and lowest latency, locate your Azure Cache for Redis in the same region as your cache client application.

Как выставляются счета за использование кэша Azure для Redis?How am I billed for Azure Cache for Redis?

Ценовая категория кэша Azure для Redis указана здесь.Azure Cache for Redis pricing is here. На странице указаны расценки в виде почасового тарифа.The pricing page lists pricing as an hourly rate. Выставляемые счета за использование кэшей рассчитываются на поминутной основе. Они охватывают интервал времени между созданием кэшей и их удалением.Caches are billed on a per-minute basis from the time that the cache is created until the time that a cache is deleted. Остановить или приостановить выставление счета за использование кэша нельзя.There is no option for stopping or pausing the billing of a cache.

Могу ли я использовать кэш Azure для Redis с облаком Azure для государственных организаций, Microsoft Azure для Китая или Microsoft Azure – Германия?Can I use Azure Cache for Redis with Azure Government Cloud, Azure China Cloud, or Microsoft Azure Germany?

Да, Кэш Azure для Redis доступен в облаке Azure Government, облаке Azure China 21Vianet и Microsoft Azure в Германии.Yes, Azure Cache for Redis is available in Azure Government Cloud, Azure China 21Vianet Cloud, and Microsoft Azure Germany. URL-адреса для доступа к кэшу Azure для Redis и для управления им в этих облаках различны в отличие от общедоступного облака Azure.The URLs for accessing and managing Azure Cache for Redis are different in these clouds compared with Azure Public Cloud.

CloudCloud DNS-суффикс для кэша RedisDns Suffix for Redis
PublicPublic *.redis.cache.windows.net*.redis.cache.windows.net
US GovUS Gov *.redis.cache.usgovcloudapi.net*.redis.cache.usgovcloudapi.net
ГерманияGermany *.redis.cache.cloudapi.de*.redis.cache.cloudapi.de
КитайChina *.redis.cache.chinacloudapi.cn*.redis.cache.chinacloudapi.cn

Дополнительные сведения о рекомендациях по использованию кэша Azure для Redis с другими облаками см. в следующих ссылках.For more information on considerations when using Azure Cache for Redis with other clouds, see the following links.

Подробнее об использовании Azure Cache для Redis с PowerShell в облаке правительства Azure, облаком Azure China 21Vianet и Microsoft Azure Germany можно просмотреть, как подключиться к другим облакам - Azure Cache для Redis PowerShell.For information on using Azure Cache for Redis with PowerShell in Azure Government Cloud, Azure China 21Vianet Cloud, and Microsoft Azure Germany, see How to connect to other clouds - Azure Cache for Redis PowerShell.

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

StackExchange.Redis имеет много параметров.StackExchange.Redis has many options. В этом разделе рассказывается о некоторых распространенных параметрах.This section talks about some of the common settings. Более подробные сведения о параметрах StackExchange.Redis см. в статье StackExchange.Redis configuration (Конфигурация StackExchange.Redis).For more detailed information about StackExchange.Redis options, see StackExchange.Redis configuration.

Параметры конфигурацииConfigurationOptions ОписаниеDescription РекомендацияRecommendation
AbortOnConnectFailAbortOnConnectFail Если задано значение true, соединение не будет восстанавливаться после сбоя сети.When set to true, the connection will not reconnect after a network failure. Установите значение false и позвольте StackExchange.Redis автоматически восстанавливать соединение.Set to false and let StackExchange.Redis reconnect automatically.
ConnectRetryConnectRetry Количество повторных попыток подключения во время первоначального подключения.The number of times to repeat connection attempts during initial connect. Руководствуйтесь следующими примечаниями.See the following notes for guidance.
ConnectTimeoutConnectTimeout Время ожидания в миллисекундах для операций подключения.Timeout in ms for connect operations. Руководствуйтесь следующими примечаниями.See the following notes for guidance.

Обычно подходят значения по умолчанию для клиента.Usually the default values of the client are sufficient. Вы можете точнее настроить параметры в зависимости от своей рабочей нагрузки.You can fine-tune the options based on your workload.

  • ПовторыRetries

    • Общая рекомендация для ConnectRetry и ConnectTimeout — завершение работы при первой ошибке и повторение попытки.For ConnectRetry and ConnectTimeout, the general guidance is to fail fast and retry again. Эта рекомендация основана на вашей рабочей нагрузке и на том, сколько времени в среднем занимает в вашем клиенте выдача команды Redis и получение ответа.This guidance is based on your workload and how much time on average it takes for your client to issue a Redis command and receive a response.
    • Вам не нужно проверять состояние и подключаться самостоятельно — StackExchange.Redis переподключается автоматически.Let StackExchange.Redis automatically reconnect instead of checking connection status and reconnecting yourself. Избегайте использования свойства ConnectionMultiplexer.IsConnected.Avoid using the ConnectionMultiplexer.IsConnected property.
    • Снежный ком — иногда возникает проблема, когда вы повторяете снова и снова, это нарастает и никогда не исправляется.Snowballing - sometimes you may run into an issue where you are retrying and the retries snowball and never recovers. При возникновении снежного кома следует использовать алгоритм экспоненциальной отсрочки повтора, как описано в общих рекомендациях по повторным попыткам, опубликованных группой Microsoft Patterns & Practices.If snowballing occurs, you should consider using an exponential backoff retry algorithm as described in Retry general guidance published by the Microsoft Patterns & Practices group.
  • Значения времени ожиданияTimeout values

    • Исследуйте вашу рабочую нагрузку и установите соответствующие значения.Consider your workload and set the values accordingly. Если вы храните большие значения, установите более высокое значение времени ожидания.If you are storing large values, set the timeout to a higher value.
    • Установите для AbortOnConnectFail значение false и позвольте StackExchange.Redis восстанавливать подключение.Set AbortOnConnectFail to false and let StackExchange.Redis reconnect for you.
    • Используйте один экземпляр ConnectionMultiplexer для приложения.Use a single ConnectionMultiplexer instance for the application. Вы можете применять LazyConnection, чтобы создать один экземпляр, который возвращается свойством Connection, как показано в разделе Подключение к кэшу с использованием класса ConnectionMultiplexer.You can use a LazyConnection to create a single instance that is returned by a Connection property, as shown in Connect to the cache using the ConnectionMultiplexer class.
    • Задайте в свойстве ConnectionMultiplexer.ClientName уникальное имя экземпляра приложения в целях диагностики.Set the ConnectionMultiplexer.ClientName property to an app instance unique name for diagnostic purposes.
    • Используйте несколько экземпляров ConnectionMultiplexer для пользовательских рабочих нагрузок.Use multiple ConnectionMultiplexer instances for custom workloads.
      • Вы можете следовать этой модели, если в приложении имеется меняющаяся нагрузка.You can follow this model if you have varying load in your application. Пример:For example:
      • можно иметь один мультиплексор для работы с большими ключами;You can have one multiplexer for dealing with large keys.
      • можно иметь один мультиплексор для работы с небольшими ключами;You can have one multiplexer for dealing with small keys.
      • можно задать разные значения времени ожидания подключения и логики повторов для каждого используемого ConnectionMultiplexer.You can set different values for connection timeouts and retry logic for each ConnectionMultiplexer that you use.
      • Установите свойство ClientName в каждом мультиплексоре для облегчения диагностики.Set the ClientName property on each multiplexer to help with diagnostics.
      • Эта рекомендация может обеспечить более оптимизированную задержку на каждый класс ConnectionMultiplexer.This guidance may lead to more streamlined latency per ConnectionMultiplexer.

Каких клиентов кэша Azure для Redis я могу использовать?What Azure Cache for Redis clients can I use?

Одним из основных преимуществ Redis является то, что существует множество клиентов, поддерживающих множество языков разработки.One of the great things about Redis is that there are many clients supporting many different development languages. Текущий список клиентов Redis см. здесь.For a current list of clients, see Redis clients. Дополнительные сведения см. в статье Краткое руководство. Использование кэша Azure для Redis с приложениями .NET. Похожие статьи вы найдете в таблице содержимого.For tutorials that cover several different languages and clients, see How to use Azure Cache for Redis and it's sibling articles in the table of contents.

Получение имени узла, портов и ключей доступа с помощью портала AzureRetrieve host name, ports, and access keys from the Azure portal

Чтобы подключаться к экземпляру Кэша Azure для Redis, клиентам кэша требуются имя узла, сведения о портах и ключ кэша.To connect to an Azure Cache for Redis instance, cache clients need the host name, ports, and a key for the cache. Некоторые клиенты могут ссылаться на эти элементы с помощью незначительно различающихся имен.Some clients might refer to these items by slightly different names. Вы можете получить имя узла, порты и ключи на портале Azure.You can get the host name, ports, and keys from the Azure portal.

  • Чтобы получить ключи доступа, в области навигации кэша слева щелкните Ключи доступа.To get the access keys, from your cache left navigation, select Access keys.

    Ключи кэша Azure для Redis

  • Чтобы получить имя узла и порты, в области навигации кэша слева щелкните Свойства.To get the host name and ports, from your cache left navigation, select Properties. Имя узла имеет вид <DNS-имя>.redis.cache.windows.net.The host name is of the form <DNS name>.redis.cache.windows.net.

    Свойства кэша Azure для Redis

Существует ли локальный эмулятор кэша Azure для Redis?Is there a local emulator for Azure Cache for Redis?

Локального эмулятора кэша Azure для Redis нет, но можно запустить версию MSOpenTech redis-server.exe из программ командной строки Redis на локальном компьютере и подключиться к нему, чтобы получить возможности, аналогичные локальному эмулятору кэша, как показано в следующем примере:There is no local emulator for Azure Cache for Redis, but you can run the MSOpenTech version of redis-server.exe from the Redis command-line tools on your local machine and connect to it to get a similar experience to a local cache emulator, as shown in the following example:

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.conf для более точного соответствия параметрам кэша по умолчанию для подключенного к сети кэша Azure для Redis.You can optionally configure a redis.conf file to more closely match the default cache settings for your online Azure Cache for Redis if desired.

Как выполнять команды Redis?How can I run Redis commands?

Вы можете использовать любую из команд, перечисленных в командах Redis, за исключением команд, указанных в перечне команд, не поддерживаемых в кэше Azure для Redis.You can use any of the commands listed at Redis commands except for the commands listed at Redis commands not supported in Azure Cache for Redis. Выполнять команды Redis можно несколькими способами.You have several options to run Redis commands.

  • При наличии кэша уровня "Стандартный" или "Премиум" вы можете запускать команды Redis с помощью консоли Redis.If you have a Standard or Premium cache, you can run Redis commands using the Redis Console. Консоль Redis — это защищенный способ выполнения команд Redis на портале Azure.The Redis console provides a secure way to run Redis commands in the Azure portal.
  • Также можно использовать программы командной строки Redis.You can also use the Redis command-line tools. Чтобы воспользоваться ими, выполните следующие действия:To use them, perform the following steps:
  • Скачайте программы командной строки Redis.Download the Redis command-line tools.
  • Подключитесь к кэшу с помощью redis-cli.exe.Connect to the cache using redis-cli.exe. Передайте конечную точку кэша, используя параметр -h и ключ с параметром -a, как показано в следующем примере:Pass in the cache endpoint using the -h switch and the key using -a as shown in the following example:
  • redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Примечание

Инструменты командной строки Redis не работают с портом SSL, но вы можете использовать stunnel утилиту, например, надежно подключить инструменты к порту SSS, следуя указаниям в каком использовании инструмента командной строки Redis с Azure Cache для статьи Redis.The Redis command-line tools do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the How to use the Redis command-line tool with Azure Cache for Redis article.

Почему в кэше Azure для Redis отсутствует ссылка на библиотеку классов MSDN, как в некоторых других службах Azure?Why doesn't Azure Cache for Redis have an MSDN class library reference like some of the other Azure services?

Кэш Microsoft Azure для Redis основан на популярном продукте с открытым кодом — кэше Azure для Redis.Microsoft Azure Cache for Redis is based on the popular open-source Azure Cache for Redis. К нему могут ознакомиться самые разнообразные клиенты Redis для многих языков программирования.It can be accessed by a wide variety of Redis clients for many programming languages. Каждый клиент имеет собственный API, который вызывает экземпляр кэша Azure для Redis с помощью команд Redis.Each client has its own API that makes calls to the Azure Cache for Redis instance using Redis commands.

Поскольку все клиенты разные, отсутствует одна централизованная ссылка на классы в MSDN, а каждый клиент поддерживает свою собственную справочную документацию.Because each client is different, there is not one centralized class reference on MSDN, and each client maintains its own reference documentation. Помимо справочной документации имеется несколько учебников, показывающих, как приступить к работе с кэшем Azure для Redis, используя разные языки и клиенты кэша.In addition to the reference documentation, there are several tutorials showing how to get started with Azure Cache for Redis using different languages and cache clients. Чтобы получить доступ к этим руководствам, см. в статью Краткое руководство. Использование кэша Azure для Redis с приложениями .NET. Похожие статьи вы найдете в таблице содержимого.To access these tutorials, see How to use Azure Cache for Redis and it's sibling articles in the table of contents.

Можно ли использовать кэш Azure для Redis как кэш сеанса PHP?Can I use Azure Cache for Redis as a PHP session cache?

Да. Для использования кэша Azure для Redis в качестве кэша сеанса PHP укажите строку подключения к экземпляру кэша Azure для Redis в пути session.save_path.Yes, to use Azure Cache for Redis as a PHP session cache, specify the connection string to your Azure Cache for Redis instance in session.save_path.

Важно!

При использовании кэша Azure для Redis в качестве кэша сеанса PHP необходимо кодировать в URL-адресе ключ безопасности, используемый для подключения к кэшу, как показано в следующем примере:When using Azure Cache for Redis as a PHP session cache, you must URL encode the security key used to connect to the cache, as shown in the following example:

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

Если ключ не кодирован в URL-адресе, то может отобразиться сообщение об исключении, подобное этому: Failed to parse session.save_pathIf the key is not URL encoded, you may receive an exception with a message like: Failed to parse session.save_path

Дополнительные сведения об использовании кэша Azure для Redis в качестве кэша сеанса PHP с клиентом PhpRedis см. в разделе Обработчик сеанса PHP.For more information about using Azure Cache for Redis as a PHP session cache with the PhpRedis client, see PHP Session handler.

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

Базы данных Redis — это просто логическое разделение данных внутри одного экземпляра Redis.Redis Databases are just a logical separation of data within the same Redis instance. Кэш-память совместно используется всеми базами данных, и фактический объем памяти, используемый определенной базой данных, зависит от пар "ключ-значение", хранящихся в ней.The cache memory is shared between all the databases and actual memory consumption of a given database depends on the keys/values stored in that database. Например, кэш C6 имеет 53 ГБ памяти, а P5 — 120 ГБ.For example, a C6 cache has 53 GB of memory, and a P5 has 120 GB. Вы можете поместить все 53 ГБ / 120 ГБ в одну базу данных или вы можете разделить его между несколькими базами данных.You can choose to put all 53 GB / 120 GB into one database or you can split it up between multiple databases.

Примечание

При использовании кэша Azure для Redis уровня "Премиум" с включенной кластеризацией доступна только база данных 0.When using a Premium Azure Cache for Redis with clustering enabled, only database 0 is available. Это внутреннее ограничение Redis, и оно не относится к кэшу Azure для Redis.This limitation is an intrinsic Redis limitation and is not specific to Azure Cache for Redis. Дополнительные сведения см. в разделе Нужно ли вносить изменения в клиентское приложение, чтобы использовать кластеризацию?.For more information, see Do I need to make any changes to my client application to use clustering?

Когда следует включать порт, не являющийся портом SSL, для подключения к Redis?When should I enable the non-SSL port for connecting to Redis?

Сервер Redis не имеет встроенной поддержки SSL, но кэш Azure для Redis имеет.Redis server does not natively support SSL, but Azure Cache for Redis does. Если вы подключаетесь к кэшу Azure для Redis и ваш клиент поддерживает протокол SSL, например StackExchange.Redis, то следует использовать SSL.If you are connecting to Azure Cache for Redis and your client supports SSL, like StackExchange.Redis, then you should use SSL.

Примечание

По умолчанию порт без SSL отключен для новых экземпляров кэша Azure для Redis.The non-SSL port is disabled by default for new Azure Cache for Redis instances. Если ваш клиент не поддерживает SSL, необходимо включить порт, не являющийся портом SSL, следуя указаниям, приведенным в разделе Access ports (Порты доступа) статьи Configure a cache in Azure Cache for Redis (Настройка кэша Azure для Redis).If your client does not support SSL, then you must enable the non-SSL port by following the directions in the Access ports section of the Configure a cache in Azure Cache for Redis article.

Инструменты Redis, такие как redis-cli, не работают с портом SSL, но вы можете использовать служебную программу, например stunnel, для безопасного подключения инструментов к порту SSL в соответствии с указаниями в записи блога Анонс поставщика состояний сеансов ASP.NET для предварительной версии Redis.Redis tools such as redis-cli do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the Announcing ASP.NET Session State Provider for Redis Preview Release blog post.

Инструкции по скачиванию инструментов Redis см. в разделе Как выполнять команды Redis?.For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Какие рекомендации следует учитывать для рабочей среды?What are some production best practices?

Рекомендации для StackExchange.RedisStackExchange.Redis best practices

  • Задайте для AbortConnect значение false, подождите, пока ConnectionMultiplexer автоматически восстановит подключение.Set AbortConnect to false, then let the ConnectionMultiplexer reconnect automatically. Щелкните здесь, чтобы узнать больше.See here for details.
  • Повторно используйте ConnectionMultiplexer — не создавайте новый экземпляр для каждого запроса.Reuse the ConnectionMultiplexer - do not create a new one for each request. Рекомендуется использовать шаблон Lazy<ConnectionMultiplexer>, показанный здесь.The Lazy<ConnectionMultiplexer> pattern shown here is recommended.
  • Лучше всего Redis работает с меньшими значениями, поэтому рассмотрите возможность разделения больших данных на несколько ключей.Redis works best with smaller values, so consider chopping up bigger data into multiple keys. В этом обсуждении Redis,100 kb учтено большим.In this Redis discussion, 100 kb is considered large. Прочитайте эту статью , чтобы ознакомиться с примером проблемы, вызванной большими значениями.Read this article for an example problem that can be caused by large values.
  • Настройте параметры ThreadPool , чтобы избежать тайм-аутов.Configure your ThreadPool settings to avoid timeouts.
  • Используйте по крайней мере значение connectTimeout по умолчанию, равное 5 секундам.Use at least the default connectTimeout of 5 seconds. Этот интервал дает StackExchange.Redis достаточно времени, чтобы восстановить соединение в случае сетевого всплеска.This interval gives StackExchange.Redis sufficient time to re-establish the connection in the event of a network blip.
  • Учтите расходы на производительность, связанные с другими операциями, которые вы выполняете.Be aware of the performance costs associated with different operations you are running. Например, команда KEYS является операцией O(n), т. е. операцией, длительность которой линейно зависит от размера входных данных. Таких операций следует избегать.For instance, the KEYS command is an O(n) operation and should be avoided. Сайт redis.io содержит сведения о временной сложности каждой поддерживаемой операции.The redis.io site has details around the time complexity for each operation that it supports. Щелкните каждую команду, чтобы просмотреть сведения о сложности операции.Click each command to see the complexity for each operation.

Конфигурация и основные понятияConfiguration and concepts

  • Для систем в рабочей среде используйте уровень "Стандартный" или "Премиум".Use Standard or Premium Tier for Production systems. Уровень "Базовый" — это система с одним узлом без репликации данных, которая не регулируется соглашением об уровне обслуживания.The Basic Tier is a single node system with no data replication and no SLA. Кроме того, используйте по крайней мере кэш C1.Also, use at least a C1 cache. Как правило, кэши C0 используются в простых сценариях разработки и тестирования.C0 caches are typically used for simple dev/test scenarios.
  • Помните, что Redis — это хранилище данных в памяти .Remember that Redis is an In-Memory data store. Прочитайте эту статью , чтобы ознакомиться со случаями, в которых может произойти потеря данных.Read this article so that you are aware of scenarios where data loss can occur.
  • Создайте свою систему таким образом, чтобы она могла справляться с кратковременными сбоями подключения, связанными с установкой исправлений и отработкой отказа.Develop your system such that it can handle connection blips due to patching and failover.

Тестирование производительностиPerformance testing

  • Начните с запуска redis-benchmark.exe , чтобы определить возможную пропускную способность перед созданием собственных тестов производительности.Start by using redis-benchmark.exe to get a feel for possible throughput before writing your own perf tests. Так как redis-benchmark не поддерживает протокол SSL, то перед запуском теста необходимо включить порт без SSL посредством портала Azure.Because redis-benchmark does not support SSL, you must enable the Non-SSL port through the Azure portal before you run the test. Примеры приведены в разделе Как измерить и протестировать производительность моего кэша?For examples, see How can I benchmark and test the performance of my cache?
  • Клиентская виртуальная машина, используемая для тестирования, должна находиться в том же регионе, что и экземпляр кэша Azure для Redis.The client VM used for testing should be in the same region as your Azure Cache for Redis instance.
  • В качестве клиента рекомендуется использовать виртуальные машины серии Dv2, так как в них используется более производительное оборудование и они выдают лучшие результаты.We recommend using Dv2 VM Series for your client as they have better hardware and should give the best results.
  • Убедитесь, что у выбранной клиентской виртуальной машины как минимум такая же емкость вычислительных ресурсов и пропускной способности, что и у тестируемого кэша.Make sure your client VM you choose has at least as much computing and bandwidth capability as the cache you are testing.
  • Включите VRSS на клиентском компьютере, если используется среда Windows.Enable VRSS on the client machine if you are on Windows. Щелкните здесь, чтобы узнать больше.See here for details.
  • Экземпляры Redis уровня "Премиум" обеспечивают меньшие сетевые задержки и большую пропускную способность, так как используют более производительные ЦП и сетевое оборудование.Premium tier Redis instances have better network latency and throughput because they are running on better hardware for both CPU and Network.

Какие факторы следует учитывать при использовании общих команд Redis?What are some of the considerations when using common Redis commands?

  • Избегайте использования определенных команд Redis, которые занимают много времени, если вы не полностью понимаете влияние этих команд.Avoid using certain Redis commands that take a long time to complete, unless you fully understand the impact of these commands. Например, не запускайте команду KEYS в производстве.For example, do not run the KEYS command in production. В зависимости от количества ключей, это может занять много времени, чтобы вернуться.Depending on the number of keys, it could take a long time to return. Redis является однопотоковым сервером и обрабатывает команды по одной.Redis is a single-threaded server and it processes commands one at a time. Если вы выдадите после KEYS другие команды, они не будут обрабатываться, пока Redis обрабатывает команду KEYS.If you have other commands issued after KEYS, they will not be processed until Redis processes the KEYS command. Сайт redis.io содержит сведения о временной сложности каждой поддерживаемой операции.The redis.io site has details around the time complexity for each operation that it supports. Щелкните каждую команду, чтобы просмотреть сведения о сложности операции.Click each command to see the complexity for each operation.
  • Размеры ключей — следует использовать пары "ключ-значение" небольшого или большого размера?Key sizes - should I use small key/values or large key/values? Это зависит от сценария развертывания.It depends on the scenario. Если сценарий требует больших ключей, можно настроить значение ConnectionTimeout, затем повторить значение и настроить логику повтора.If your scenario requires larger keys, you can adjust the ConnectionTimeout, then retry values and adjust your retry logic. С точки зрения сервера Redis меньшие значения дают более высокую производительность.From a Redis server perspective, smaller values give better performance.
  • Это не означает, что в Redis нельзя хранить большие значения; вы должны учитывать описанные ниже факторы.These considerations don't mean that you can't store larger values in Redis; you must be aware of the following considerations. Задержки будут выше.Latencies will be higher. Если имеется один большой и один небольшой набор данных, можно использовать несколько экземпляров ConnectionMultiplexer, настроенных с разным набором значений времени ожидания и повторов, как описано в предыдущем разделе Что делают параметры конфигурации StackExchange.Redis.If you have one set of data that is larger and one that is smaller, you can use multiple ConnectionMultiplexer instances, each configured with a different set of timeout and retry values, as described in the previous What do the StackExchange.Redis configuration options do section.

Как измерить и протестировать производительность моего кэша?How can I benchmark and test the performance of my cache?

  • Включите диагностику кэша, чтобы можно было наблюдать за работоспособностью кэша.Enable cache diagnostics so you can monitor the health of your cache. Вы можете просматривать метрики на портале Azure, а также загружать и просматривать их с помощью инструментов по вашему выбору.You can view the metrics in the Azure portal and you can also download and review them using the tools of your choice.
  • Для нагрузочного теста сервера Redis можно использовать benchmark.exe.You can use redis-benchmark.exe to load test your Redis server.
  • Убедитесь, что клиент нагрузочного тестирования и кэш Azure для Redis находятся в одном регионе.Ensure that the load testing client and the Azure Cache for Redis are in the same region.
  • Используйте redis-cli.exe и наблюдайте за кэшем с помощью команды INFO.Use redis-cli.exe and monitor the cache using the INFO command.
  • Если ваша нагрузка приводит к высокой степени фрагментации памяти, то необходимо масштабирование до большего размера кэша.If your load is causing high memory fragmentation, you should scale up to a larger cache size.
  • Инструкции по скачиванию инструментов Redis см. в разделе Как выполнять команды Redis?.For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Следующие команды приводят пример использования redis-benchmark.exe.The following commands provide an example of using redis-benchmark.exe. Чтобы получить точные результаты, выполните эти команды на виртуальной машине, размещенной в том же регионе, что и кэш.For accurate results, run these commands from a VM in the same region as your cache.

  • Тестирование конвейерных запросов SET с полезными данными размером в 1 КБ.Test Pipelined SET requests using a 1k payload

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t SET -n 1000000 -d 1024 -P 50

  • Тестирование конвейерных запросов GET с полезными данными размером в 1 КБ.Test Pipelined GET requests using a 1k payload. Примечание. Сначала выполните приведенный выше тест SET, чтобы заполнить кэш.NOTE: Run the SET test shown above first to populate cache

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t GET -n 1000000 -d 1024 -P 50

Важные сведения о росте пула потоков ThreadPoolImportant details about ThreadPool growth

CLR ThreadPool имеет два типа потоков - "Рабочий" и "I/O Completion Port" (IOCP) потоков.The CLR ThreadPool has two types of threads - "Worker" and "I/O Completion Port" (IOCP) threads.

  • Рабочие потоки используются, например, для обработки методов Task.Run(…) или ThreadPool.QueueUserWorkItem(…).Worker threads are used for things like processing the Task.Run(…), or ThreadPool.QueueUserWorkItem(…) methods. Эти потоки также используются различными компонентами в среде CLR, когда работа должна быть выполнена в фоновом потоке.These threads are also used by various components in the CLR when work needs to happen on a background thread.
  • Потоки IOCP используются при асинхронном исмообовенном использовавании, например, при чтении из сети.IOCP threads are used when asynchronous IO happens, such as when reading from the network.

Пул потоков предоставляет новые рабочие потоки или потоки завершения ввода-вывода по запросу (без регулирования), пока не будет достигнут параметр "Минимум" для каждого типа потока.The thread pool provides new worker threads or I/O completion threads on demand (without any throttling) until it reaches the "Minimum" setting for each type of thread. По умолчанию минимальное количество потоков равно количеству процессоров в системе.By default, the minimum number of threads is set to the number of processors on a system.

Когда количество существующих (занятых) потоков достигает "минимального" количества потоков, ThreadPool изменяет частоту внедрения новых потоков до величины в один поток за 500 миллисекунд.Once the number of existing (busy) threads hits the "minimum" number of threads, the ThreadPool will throttle the rate at which it injects new threads to one thread per 500 milliseconds. Как правило, если ваша система получает взрыв работы, нуждающейся в потоке IOCP, она будет обрабатывать эту работу быстро.Typically, if your system gets a burst of work needing an IOCP thread, it will process that work quickly. Однако если величина нагрузки больше настроенного параметра "Минимум", при обработке некоторых операций возникнет некоторая задержка, так как ThreadPool будет ожидать возникновения одного из двух событий.However, if the burst of work is more than the configured "Minimum" setting, there will be some delay in processing some of the work as the ThreadPool waits for one of two things to happen.

  1. Освобождение существующего потока для выполнения работы.An existing thread becomes free to process the work.
  2. Ни один существующий поток не становится бесплатным для 500 мс, поэтому создается новый поток.No existing thread becomes free for 500 ms, so a new thread is created.

В принципе, это означает, что, когда количество занятых потоков больше, чем потоки Min, вы, вероятно, заплатите 500-мс задержку, прежде чем сетевой трафик обрабатывается приложением.Basically, it means that when the number of Busy threads is greater than Min threads, you are likely paying a 500-ms delay before network traffic is processed by the application. Кроме того, важно обратить внимание, что если существующий поток простаивает более 15 секунд (на основе моих наблюдений), он будет удален, и этот цикл наращивания и уменьшения количества потоков может повториться.Also, it is important to note that when an existing thread stays idle for longer than 15 seconds (based on what I remember), it will be cleaned up and this cycle of growth and shrinkage can repeat.

Если взглянуть на пример сообщения об ошибке от StackExchange.Redis (сборка 1.0.450 или более поздней версии), вы увидите, что теперь оно содержит статистику ThreadPool (подробности о рабочих потоках и потоках IOCP см. ниже).If we look at an example error message from StackExchange.Redis (build 1.0.450 or later), you will see that it now prints ThreadPool statistics (see IOCP and WORKER details below).

System.TimeoutException: Timeout performing GET MyKey, inst: 2, mgr: Inactive,
queue: 6, qu: 0, qs: 6, qc: 0, wr: 0, wq: 0, in: 0, ar: 0,
IOCP: (Busy=6,Free=994,Min=4,Max=1000),
WORKER: (Busy=3,Free=997,Min=4,Max=1000)

В предыдущем примере можно увидеть, что для потока IOCP имеется шесть занятых потоков, и система настроена таким образом, чтобы позволить четыре минимальных потока.In the previous example, you can see that for IOCP thread there are six busy threads and the system is configured to allow four minimum threads. В этом случае клиент, скорее всего, видел бы две 500-мм задержки, потому что 6 > 4.In this case, the client would have likely seen two 500-ms delays, because 6 > 4.

Обратите внимание, что StackExchange.Redis может достигнуть времени ожидания, если происходит регулирование количества рабочих потоков или потоков IOCP.Note that StackExchange.Redis can hit timeouts if growth of either IOCP or WORKER threads gets throttled.

РекомендацияRecommendation

С учетом этой информации мы настоятельно рекомендуем клиентам устанавливать значение параметра "Минимум" для рабочих потоков и потоков IOCP так, чтобы оно превышало значение по умолчанию.Given this information, we strongly recommend that customers set the minimum configuration value for IOCP and WORKER threads to something larger than the default value. Мы не можем дать универсальное руководство о том, каким должно быть это значение, поскольку правильное значение для одного приложения, скорее всего, будет слишком высоким или низким для другого приложения.We can't give one-size-fits-all guidance on what this value should be because the right value for one application will likely be too high or low for another application. Этот параметр также может повлиять на производительность других компонентов сложных приложений, поэтому каждый клиент должен точно настроить этот параметр в соответствии со своими потребностями.This setting can also impact the performance of other parts of complicated applications, so each customer needs to fine-tune this setting to their specific needs. Хорошей отправной точкой является 200 или 300, после чего нужно проверить и изменить этот параметр в соответствии с результатом.A good starting place is 200 or 300, then test and tweak as needed.

Как настроить этот параметр:How to configure this setting:

private readonly int minThreads = 200;
void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    ThreadPool.SetMinThreads(minThreads, minThreads);
}

Примечание

Значение, указанное этим методом, является глобальной настройкой, затрагивающей весь AppDomain.The value specified by this method is a global setting, affecting the whole AppDomain. Например, если у вас есть 4-ядерная машина и вы хотите установить minWorkerThreads и minIoThreads до 50 на процессор во время выполнения времени, вы будете использовать ThreadPool.SetMinThreads (200, 200).For example, if you have a 4-core machine and want to set minWorkerThreads and minIoThreads to 50 per CPU during run-time, you would use ThreadPool.SetMinThreads(200, 200).

  • Также можно указать минимальные настройки потоков, используя настройки конфигурации minIoThreads или minWorkerThreads под <processModel> элементом конфигурации в, Machine.configобычно расположенном по адресу %SystemRoot%\Microsoft.NET\Framework\[versionNumber]\CONFIG\.It is also possible to specify the minimum threads setting by using the minIoThreads or minWorkerThreads configuration setting under the <processModel> configuration element in Machine.config, usually located at %SystemRoot%\Microsoft.NET\Framework\[versionNumber]\CONFIG\. Устанавливать количество минимальных потоков таким образом, как правило, не рекомендуется, поскольку это общесистемная настройка.Setting the number of minimum threads in this way is generally not recommended, because it is a System-wide setting.

    Примечание

    В этом элементе конфигурации задается параметр per-core.The value specified in this configuration element is a per-core setting. Например, если у вас есть 4-ядерная машина и вы хотите, чтобы настройка minIoThreads была 200 во время выполнения, вы бы использовали. <processModel minIoThreads="50"/>For example, if you have a 4-core machine and want your minIoThreads setting to be 200 at runtime, you would use <processModel minIoThreads="50"/>.

Включение сборки мусора сервера для получения более высокой пропускной способности на стороне клиента при использовании StackExchange.RedisEnable server GC to get more throughput on the client when using StackExchange.Redis

Включение сборки мусора сервера может оптимизировать работу клиента и улучшить производительность и пропускную способность при использовании StackExchange.Redis.Enabling server GC can optimize the client and provide better performance and throughput when using StackExchange.Redis. Дополнительные сведения о сборке мусора сервера и о том, как ее включить, можно найти в следующих статьях:For more information on server GC and how to enable it, see the following articles:

Рекомендации по производительности для подключенийPerformance considerations around connections

Каждая ценовая категория имеет различные ограничения для количества клиентских подключений, памяти и пропускной способности.Each pricing tier has different limits for client connections, memory, and bandwidth. Хотя каждый размер кэша допускает определенное число подключений, с каждым подключением к Redis связаны накладные расходы.While each size of cache allows up to a certain number of connections, each connection to Redis has overhead associated with it. Примером таких накладных расходов могут служить загрузка ЦП и использование памяти в результате шифрования TLS/SSL.An example of such overhead would be CPU and memory usage as a result of TLS/SSL encryption. Максимальное число подключений для данного размера кэша предполагает низкую загрузку кэша.The maximum connection limit for a given cache size assumes a lightly loaded cache. Если суммарная нагрузка, связанная с подключениями и клиентскими операциями, превышает емкость системы, могут возникнуть проблемы с работой кэша, даже если максимальное число подключений для его текущего размера не превышено.If load from connection overhead plus load from client operations exceeds capacity for the system, the cache can experience capacity issues even if you have not exceeded the connection limit for the current cache size.

Дополнительные сведения о разных пределах подключений для каждого уровня см. в статье Цены на Кэш Azure для Redis.For more information about the different connections limits for each tier, see Azure Cache for Redis pricing. Дополнительные сведения о подключениях и других конфигурациях по умолчанию см. в статье Конфигурация сервера Redis по умолчанию.For more information about connections and other default configurations, see Default Redis server configuration.

Как отслеживать работоспособность и производительность моего кэша?How do I monitor the health and performance of my cache?

За экземплярами кэша Microsoft Azure для Redis можно наблюдать на портале Azure.Microsoft Azure Cache for Redis instances can be monitored in the Azure portal. Вы можете просматривать метрики, закреплять диаграммы метрик на начальной панели, настраивать диапазоны дат и времени для диаграмм мониторинга, добавлять и удалять метрики в диаграммах, а также настраивать отправку оповещений при выполнении определенных условий.You can view metrics, pin metrics charts to the Startboard, customize the date and time range of monitoring charts, add and remove metrics from the charts, and set alerts when certain conditions are met. Дополнительные сведения см. в статье Monitor Azure Cache for Redis (Как выполнять мониторинг кэша Azure для Redis).For more information, see Monitor Azure Cache for Redis.

В меню ресурсов кэша Azure для Redis также содержится несколько инструментов для мониторинга и устранения неполадок кэшей.The Azure Cache for Redis Resource menu also contains several tools for monitoring and troubleshooting your caches.

  • Диагностика и решение проблем предоставляет сведения об основных проблемах и способах их устранения.Diagnose and solve problems provides information about common issues and strategies for resolving them.
  • Служба работоспособности ресурсов отслеживает ресурс и сообщает, работает ли он как ожидалось.Resource health watches your resource and tells you if it's running as expected. Дополнительные сведения о службе работоспособности ресурсов Azure см. здесь.For more information about the Azure Resource health service, see Azure Resource health overview.
  • Новый запрос на поддержку , можно создать запрос по своему кэшу.New support request provides options to open a support request for your cache.

Эти инструменты позволяют наблюдать за работоспособностью экземпляров кэша Azure для Redis и помогают управлять кэшируемыми приложениями.These tools enable you to monitor the health of your Azure Cache for Redis instances and help you manage your caching applications. Дополнительные сведения см. в разделе "Support & troubleshooting settings" (Настройки поддержки и устранения неполадок) в статье How to configure Azure Cache for Redis (Настройка кэша Azure для Redis).For more information, see the "Support & troubleshooting settings" section of How to configure Azure Cache for Redis.

Почему я наблюдаю простои?Why am I seeing timeouts?

Простои происходят на клиенте, который вы используете для обращения к Redis.Timeouts happen in the client that you use to talk to Redis. Когда команда отправляется на сервер Redis, она помещается в очередь, и со временем сервер Redis выбирает команду и выполняет его.When a command is sent to the Redis server, the command is queued up and Redis server eventually picks up the command and executes it. Однако во время этого процесса клиент может простаивать, и в этом случае на вызывающей стороне возникает исключение.However the client can time out during this process and if it does an exception is raised on the calling side. Для получения дополнительной информации о проблемах тайм-аута устранения неполадок см. StackExchange.Redis timeout exceptionsFor more information on troubleshooting timeout issues, see client-side troubleshooting and StackExchange.Redis timeout exceptions.

Почему мой клиент был отключен от кэша?Why was my client disconnected from the cache?

Ниже приведены некоторые распространенные причины отключения кэша.The following are some common reason for a cache disconnect.

  • Причины на стороне клиентаClient-side causes
    • Клиентское приложение было развернуто повторно.The client application was redeployed.
    • Клиентское приложение выполняло операцию масштабирования.The client application performed a scaling operation.
      • В случае облачных служб или веб-приложений это может быть связано с автомасштабированием.In the case of Cloud Services or Web Apps, this may be due to autoscaling.
    • Изменен сетевой уровень на стороне клиента.The networking layer on the client side changed.
    • Возникла временная ошибка на клиенте или в узлах сети между клиентом и сервером.Transient errors occurred in the client or in the network nodes between the client and the server.
    • Было достигнуто предельное пороговое значение пропускной способности.The bandwidth threshold limits were reached.
    • Выполнение операций, связанных с ЦП, заняло слишком много времени.CPU bound operations took too long to complete.
  • Причины на стороне сервераServer-side causes
    • В предложении кэша уровня "Стандартный" служба кэша Azure для Redis инициировала отработку отказа с переходом с основного узла на вторичный узел.On the standard cache offering, the Azure Cache for Redis service initiated a fail-over from the primary node to the secondary node.
    • В Azure было выполнено исправление экземпляра, в котором был развернут кэш.Azure was patching the instance where the cache was deployed
      • Это могли быть обновления сервера Redis или обычное обслуживание ВМ.This can be for Redis server updates or general VM maintenance.

Какой кэш Azure подходит мне?Which Azure Cache offering is right for me?

Важно!

Согласно прошлогоднему объявлению, использование управляемой службы кэша Azure и службы кэша роли Azure было прекращено 30 ноября 2016 г.As per last year's announcement, Azure Managed Cache Service and Azure In-Role Cache service have been retired on November 30, 2016. Мы рекомендуем использовать кэш Azure для Redis.Our recommendation is to use Azure Cache for Redis. Дополнительные сведения о переходе на новую службу см. в статье Migrate from Managed Cache Service to Azure Cache for Redis (Перенос из управляемой службы кэша в кэш Azure для Redis).For information on migrating, see Migrate from Managed Cache Service to Azure Cache for Redis.

Кэш Redis для AzureAzure Cache for Redis

Azure Кэш для Redis, как правило, доступен в размерах до 120 ГБ и имеет доступность SLA 99,9%.Azure Cache for Redis is Generally Available in sizes up to 120 GB and has an availability SLA of 99.9%. Новый премиум-уровень предлагает размеры до 1,2 ТБ и поддержку кластеризации, VNET и настойчивости, с 99,9% SLA.The new premium tier offers sizes up to 1.2 TB and support for clustering, VNET, and persistence, with a 99.9% SLA.

Кэш Azure для Redis предоставляет пользователям доступ к безопасному выделенному кэшу Azure для Redis, управляемому корпорацией Майкрософт.Azure Cache for Redis gives customers the ability to use a secure, dedicated Azure Cache for Redis, managed by Microsoft. В рамках этого предложения вам доступны широкий набор функций и экосистема от Redis, а также надежное размещение и мониторинг от Майкрософт.With this offer, you get to leverage the rich feature set and ecosystem provided by Redis, and reliable hosting and monitoring from Microsoft.

В отличие от традиционных кэшов, которые имеют дело только с парами ключей, Redis популярен для своих высокоэффективных типов данных.Unlike traditional caches that deal only with key-value pairs, Redis is popular for its highly performant data types. Redis также поддерживает выполнение атомарных операций с этими типами, включая добавление в строку, инкрементное увеличение значения в хэше, публикация в список, вычисление пересечения, объединения и разницы в наборе; получение элемента с наивысшим рейтингом в сохраненном наборе.Redis also supports running atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set. К другим функциям относится поддержка транзакций, публикации и подписок, скрипты Lua, ключи с ограниченным сроком жизни и параметры конфигурации, настройка которых обеспечивает схожее с традиционным кэшем поведение Redis.Other features include support for transactions, pub/sub, Lua scripting, keys with a limited time-to-live, and configuration settings to make Redis behave more like a traditional cache.

Другим ключевым аспектом успеха Redis является здоровая, динамичная экосистема с открытым исходным кодом, построенная вокруг него.Another key aspect to Redis success is the healthy, vibrant open- source ecosystem built around it. Это отражено в различных наборах клиентов Redis, доступных на разных языках.This is reflected in the diverse set of Redis clients available across multiple languages. Данная экосистема и широкий диапазон клиентов позволяют использовать кэш Azure для Redis практически для любой рабочей нагрузки, создаваемой в Azure.This ecosystem and wide range of clients allow Azure Cache for Redis to be used by nearly any workload you would build inside of Azure.

Дополнительные сведения о начале работы с кэшем Redis для Azure см. в статьях Краткое руководство. Использование кэша Azure для Redis с приложениями .NET и Документация по кэшу Azure для Redis.For more information about getting started with Azure Cache for Redis, see How to Use Azure Cache for Redis and Azure Cache for Redis documentation.

Управляемая служба кэшаManaged Cache service

Использование управляемой службы кэша было прекращено 30 ноября 2016 г.Managed Cache service was retired November 30, 2016.

Архив документации можно найти на этой странице.To view archived documentation, see Archived Managed Cache Service Documentation.

Кэш в ролиIn-Role Cache

Использование службы кэша роли было прекращено 30 ноября 2016 г.In-Role Cache was retired November 30, 2016.

Архив документации можно найти на этой странице.To view archived documentation, see Archived In-Role Cache Documentation.