Azure Cache for Redis — często zadawane pytaniaAzure Cache for Redis FAQ

Poznaj odpowiedzi na często zadawane pytania, wzorce oraz najlepsze rozwiązania dotyczące usługi Azure cache for Redis.Learn the answers to common questions, patterns, and best practices for Azure Cache for Redis.

Co zrobić, jeśli w tym miejscu nie udzielono odpowiedzi na moje pytanie?What if my question isn't answered here?

Jeśli pytania nie ma na liście, poinformuj nas o tym, a my pomożemy Ci znaleźć odpowiedź.If your question isn't listed here, let us know and we'll help you find an answer.

  • Możesz ogłosić pytanie w komentarzach na końcu często zadawanych pytań i skontaktować się z zespołem usługi Azure cache i innymi członkami społeczności dotyczącymi tego artykułu.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.
  • Aby dotrzeć do szerszego grona odbiorców, możesz ogłosić pytanie na forum MSDN usługi Azure cache i korzystać z zespołu usługi Azure cache i innych członków społeczności.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.
  • Jeśli chcesz utworzyć żądanie dotyczące funkcji, możesz przesłać swoje żądania i pomysły do usługi Azure cache for Redis.If you want to make a feature request, you can submit your requests and ideas to Azure Cache for Redis User Voice.
  • Możesz również wysłać do nas wiadomość e-mail na temat zewnętrznej opinii w usłudze Azure cache.You can also send an email to us at Azure Cache External Feedback.

Azure cache for Redis — podstawyAzure Cache for Redis basics

Często zadawane pytania przedstawione w tej sekcji dotyczą niektórych podstaw usługi Azure cache for Redis.The FAQs in this section cover some of the basics of Azure Cache for Redis.

Poniższe często zadawane pytania obejmują podstawowe pojęcia i pytania dotyczące usługi Azure cache for Redis oraz odpowiedzi na jedną z innych sekcji często zadawanych pytań.The following FAQs cover basic concepts and questions about Azure Cache for Redis and are answered in one of the other FAQ sections.

Planowanie często zadawanych pytańPlanning FAQs

Często zadawane pytania dotyczące programowaniaDevelopment FAQs

Często zadawane pytania dotyczące zabezpieczeńSecurity FAQs

Często zadawane pytania dotyczące produkcjiProduction FAQs

Monitorowanie pytań i rozwiązywanie problemówMonitoring and troubleshooting FAQs

Często zadawane pytania zawarte w tej sekcji dotyczą typowych pytań dotyczących monitorowania i rozwiązywania problemów.The FAQs in this section cover common monitoring and troubleshooting questions. Aby uzyskać więcej informacji na temat monitorowania i rozwiązywania problemów z pamięcią podręczną platformy Azure dla wystąpień Redis, zobacz Jak monitorować usługę Azure cache for Redis i różne przewodniki dotyczące rozwiązywania problemów.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.

Wcześniejsza pamięć podręczna oferująca często zadawane pytaniaPrior Cache offering FAQs

Co to jest usługa Azure Cache for Redis?What is Azure Cache for Redis?

Pamięć podręczna systemu Azure dla usługi Redis jest oparta na popularnej Redisoprogramowania open source.Azure Cache for Redis is based on the popular open-source software Redis. Zapewnia dostęp do bezpiecznej, dedykowanej pamięci podręcznej platformy Azure dla usługi Redis, zarządzanej przez firmę Microsoft i dostępnej z dowolnej aplikacji na platformie Azure.It gives you access to a secure, dedicated Azure Cache for Redis, managed by Microsoft, and accessible from any application within Azure. Aby zapoznać się z bardziej szczegółowym omówieniem, zobacz stronę usługi Azure cache for Redis na stronie Azure.com.For a more detailed overview, see the Azure Cache for Redis product page on Azure.com.

Jak rozpocząć pracę z usługą Azure cache for Redis?How can I get started with Azure Cache for Redis?

Istnieje kilka sposobów rozpoczynania pracy z usługą Azure cache for Redis.There are several ways you can get started with Azure Cache for Redis.

Jeśli nie masz jeszcze konta platformy Azure, możesz:If you don't already have an Azure account, you can:

Jakiej pamięci podręcznej platformy Azure dla oferty Redis i rozmiaru należy użyć?What Azure Cache for Redis offering and size should I use?

Każda usługa Azure cache for Redis oferuje różne poziomy rozmiaru, przepustowości, wysokiej dostępnościi umowy SLA .Each Azure Cache for Redis offering provides different levels of size, bandwidth, high availability, and SLA options.

Poniżej przedstawiono zagadnienia dotyczące wybierania oferty pamięci podręcznej.The following are considerations for choosing a Cache offering.

  • Pamięć: warstwy Podstawowa i standardowa oferują 250 MB – 53 GB.Memory: The Basic and Standard tiers offer 250 MB – 53 GB. Warstwa Premium oferuje do 1,2 TB (jako klaster) lub 120 GB (nieklastrowane).The Premium tier offers up to 1.2 TB (as a cluster) or 120 GB (non-clustered). Aby uzyskać więcej informacji, zobacz Azure cache for Redis — Cennik.For more information, see Azure Cache for Redis Pricing.
  • Wydajność sieci: Jeśli korzystasz z obciążenia, które wymaga dużej przepływności, warstwa Premium oferuje większą przepustowość w porównaniu do wersji Standard lub Basic.Network Performance: If you have a workload that requires high throughput, the Premium tier offers more bandwidth compared to Standard or Basic. Ponadto w każdej warstwie pamięć podręczna o większym rozmiarze ma większą przepustowość ze względu na źródłową maszynę wirtualną, która obsługuje pamięć podręczną.Also within each tier, larger size caches have more bandwidth because of the underlying VM that hosts the cache. Aby uzyskać więcej informacji, zobacz poniższą tabelę.For more information, see the following table.
  • Przepływność: warstwa Premium oferuje maksymalną dostępną przepływność.Throughput: The Premium tier offers the maximum available throughput. Jeśli serwer pamięci podręcznej lub klient osiągnie limity przepustowości, mogą pojawić się limity czasu po stronie klienta.If the cache server or client reaches the bandwidth limits, you may receive timeouts on the client side. Aby uzyskać więcej informacji, zobacz poniższą tabelę.For more information, see the following table.
  • Wysoka dostępność/umowa SLA: pamięć podręczna systemu Azure dla Redis gwarantuje, że pamięć podręczna w warstwie Standardowa/Premium jest dostępna przez co najmniej 99,9% czasu.High Availability/SLA: Azure Cache for Redis guarantees that a Standard/Premium cache is available at least 99.9% of the time. Aby dowiedzieć się więcej o umowach SLA, zobacz Azure cache for Redis — Cennik.To learn more about our SLA, see Azure Cache for Redis Pricing. Umowa SLA obejmuje tylko łączność z punktami końcowymi pamięci podręcznej.The SLA only covers connectivity to the Cache endpoints. Nie zapewnia ona ochrony przed utratą danych.The SLA does not cover protection from data loss. Zalecamy używanie funkcji trwałości danych Redis w warstwie Premium w celu zwiększenia odporności na utratę danych.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss.
  • Trwałość danych Redis: warstwa Premium umożliwia utrwalanie danych w pamięci podręcznej na koncie usługi Azure Storage.Redis Data Persistence: The Premium tier allows you to persist the cache data in an Azure Storage account. W pamięci podręcznej podstawowa/standardowa wszystkie dane są przechowywane tylko w pamięci.In a Basic/Standard cache, all the data is stored only in memory. Problemy związane z infrastrukturą mogą skutkować potencjalną utratą danych.Underlying infrastructure issues might result in potential data loss. Zalecamy używanie funkcji trwałości danych Redis w warstwie Premium w celu zwiększenia odporności na utratę danych.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss. Usługa Azure cache for Redis oferuje opcje RDB i kopia zapasowa AOF (dostępne wkrótce) w przypadku trwałości Redis.Azure Cache for Redis offers RDB and AOF (coming soon) options in Redis persistence. Aby uzyskać więcej informacji, zobacz jak skonfigurować trwałość dla pamięci podręcznej Premium platformy Azure dla Redis.For more information, see How to configure persistence for a Premium Azure Cache for Redis.
  • Klaster Redis: Aby utworzyć pamięć podręczną o rozmiarze większym niż 120 GB lub fragmentu dane w wielu węzłach Redis, można użyć klastra Redis, który jest dostępny w warstwie 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. Każdy węzeł składa się z pary pamięci podręcznej podstawowej/repliki w celu zapewnienia wysokiej dostępności.Each node consists of a primary/replica cache pair for high availability. Aby uzyskać więcej informacji, zobacz jak skonfigurować klastrowanie dla pamięci podręcznej Premium platformy Azure dla Redis.For more information, see How to configure clustering for a Premium Azure Cache for Redis.
  • Ulepszone zabezpieczenia i izolacja sieci: wdrożenie usługi Azure Virtual Network (VNET) zapewnia ulepszone zabezpieczenia i izolację pamięci podręcznej platformy Azure dla usługi Redis, a także podsieci, zasady kontroli dostępu i inne funkcje w celu dodatkowego ograniczenia dostępu.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. Aby uzyskać więcej informacji, zobacz jak skonfigurować obsługę usługi Virtual Network w przypadku pamięci podręcznej Premium platformy Azure dla Redis.For more information, see How to configure Virtual Network support for a Premium Azure Cache for Redis.
  • Konfigurowanie Redis: w warstwach Standardowa i Premium można skonfigurować Redis dla powiadomień dotyczących miejsca na dysku.Configure Redis: In both the Standard and Premium tiers, you can configure Redis for Keyspace notifications.
  • Maksymalna liczba połączeń klientów: warstwa Premium oferuje maksymalną liczbę klientów, którzy mogą łączyć się z usługą Redis, z większą liczbą połączeń dla pamięci podręcznych o większej wielkości.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. Klastrowanie nie zwiększa liczby połączeń dostępnych dla klastrowanej pamięci podręcznej.Clustering does not increase the number of connections available for a clustered cache. Aby uzyskać więcej informacji, zobacz Azure cache for Redis — Cennik.For more information, see Azure Cache for Redis pricing.
  • Dedykowany rdzeń dla serwera Redis: w warstwie Premium wszystkie rozmiary pamięci podręcznej mają dedykowany rdzeń dla Redis.Dedicated Core for Redis Server: In the Premium tier, all cache sizes have a dedicated core for Redis. W warstwach Podstawowa/standardowa rozmiar C1 i powyżej ma dedykowany rdzeń dla serwera Redis.In the Basic/Standard tiers, the C1 size and above have a dedicated core for Redis server.
  • Redis jest jednowątkowy , tak aby więcej niż dwa rdzenie nie zapewniały większej korzyści niż dwa rdzenie, ale większe rozmiary maszyn wirtualnych zazwyczaj mają większą przepustowość niż mniejsze rozmiary.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. Jeśli serwer pamięci podręcznej lub klient osiągnie limity przepustowości, po stronie klienta zostaną wyświetlone limity czasu.If the cache server or client reaches the bandwidth limits, then you receive timeouts on the client side.
  • Ulepszenia wydajności: pamięć podręczna w warstwie Premium są wdrażane na sprzęcie z szybszymi procesorami, co zapewnia lepszą wydajność w porównaniu z warstwą podstawowa lub standardowa.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. Pamięć podręczna warstwy Premium ma wyższą przepływność i mniejsze opóźnienia.Premium tier Caches have higher throughput and lower latencies.

Pamięć podręczna Azure dla wydajności RedisAzure Cache for Redis performance

W poniższej tabeli przedstawiono maksymalne wartości przepustowości zaobserwowane podczas testowania różnych rozmiarów pamięci podręcznej w warstwach Standardowa i Premium przy użyciu redis-benchmark.exe z maszyny wirtualnej IaaS w usłudze Azure cache for Redis Endpoint.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. W przypadku przepływności SSL Redis — test porównawczy jest używany z stunnel do nawiązywania połączenia z usługą Azure cache for Redis Endpoint.For SSL throughput, redis-benchmark is used with stunnel to connect to the Azure Cache for Redis endpoint.

Uwaga

Te wartości nie są gwarantowane i nie ma umowy SLA dla tych numerów, ale powinny być typowe.These values are not guaranteed and there is no SLA for these numbers, but should be typical. Należy przetestować własną aplikację, aby określić odpowiedni rozmiar pamięci podręcznej dla aplikacji.You should load test your own application to determine the right cache size for your application. Liczby te mogą ulec zmianie w miarę okresowego ogłaszania nowszych wyników.These numbers might change as we post newer results periodically.

Z tej tabeli można narysować następujące wnioski:From this table, we can draw the following conclusions:

  • Przepływność dla pamięci podręcznych o takim samym rozmiarze jest większa w warstwie Premium w porównaniu do warstwy Standardowa.Throughput for the caches that are the same size is higher in the Premium tier as compared to the Standard tier. Na przykład w przypadku pamięci podręcznej 6 GB przepływność P1 to 180 000 żądań na sekundę (RPS pliku) w porównaniu do 100 000 RPS pliku dla 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.
  • W przypadku klastrowania Redis przepływność wzrasta liniowo w miarę zwiększania liczby fragmentów (węzłów) w klastrze.With Redis clustering, throughput increases linearly as you increase the number of shards (nodes) in the cluster. Jeśli na przykład utworzysz klaster P4 o wartości 10 fragmentów, dostępna przepływność to 400 000 * 10 = 4 000 000 RPS pliku.For example, if you create a P4 cluster of 10 shards, then the available throughput is 400,000 * 10 = 4 million RPS.
  • Przepływność dla większych rozmiarów kluczy jest wyższa w warstwie Premium w porównaniu do warstwy Standardowa.Throughput for bigger key sizes is higher in the Premium tier as compared to the Standard Tier.
Warstwa cenowaPricing tier RozmiarSize Rdzenie procesora CPUCPU cores Dostępna przepustowośćAvailable bandwidth rozmiar wartości 1 KB1-KB value size rozmiar wartości 1 KB1-KB value size
Standardowe rozmiary pamięci podręcznejStandard cache sizes Megabity na sekundę (MB/s)/megabajty na sekundę (MB/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Żądania na sekundę (RPS pliku) bez protokołu SSLRequests per second (RPS) Non-SSL Żądania na sekundę (RPS pliku) SSLRequests per second (RPS) SSL
C0C0 250 MB250 MB WspółdzielonaShared 100 / 12.5100 / 12.5 15 00015,000 75007,500
C1C1 1 GB1 GB 11 500 / 62.5500 / 62.5 38 00038,000 20 72020,720
C2C2 2,5 GB2.5 GB 22 500 / 62.5500 / 62.5 41 00041,000 37 00037,000
C3C3 6 GB6 GB 44 1000 / 1251000 / 125 100 000100,000 90,00090,000
C4C4 13 GB13 GB 22 500 / 62.5500 / 62.5 60,00060,000 55 00055,000
C5C5 26 GB26 GB 44 1,000 / 1251,000 / 125 102 000102,000 93 00093,000
C6C6 53 GB53 GB 88 2,000 / 2502,000 / 250 126 000126,000 120,000120,000
Rozmiary pamięci podręcznej PremiumPremium cache sizes Rdzenie procesora CPU na fragmentuCPU cores per shard Megabity na sekundę (MB/s)/megabajty na sekundę (MB/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Żądania na sekundę (RPS pliku) bez protokołu SSL, na fragmentuRequests per second (RPS) Non-SSL, per shard Żądania na sekundę (RPS pliku) SSL, na fragmentuRequests per second (RPS) SSL, per shard
P1P1 6 GB6 GB 22 1,500 / 187.51,500 / 187.5 180,000180,000 172 000172,000
P2P2 13 GB13 GB 44 3,000 / 3753,000 / 375 350 000350,000 341 000341,000
P3P3 26 GB26 GB 44 3,000 / 3753,000 / 375 350 000350,000 341 000341,000
P4P4 53 GB53 GB 88 6,000 / 7506,000 / 750 400 000400,000 373 000373,000
P5P5 120 GB120 GB 2020 6,000 / 7506,000 / 750 400 000400,000 373 000373,000

Instrukcje dotyczące konfigurowania stunnel lub pobierania narzędzi Redis, takich jak redis-benchmark.exe, można znaleźć w sekcji jak uruchomić polecenia 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.

W jakim regionie należy znaleźć moją pamięć podręczną?In what region should I locate my cache?

Aby uzyskać najlepszą wydajność i najmniejsze opóźnienia, zlokalizuj pamięć podręczną platformy Azure dla Redis w tym samym regionie, w którym znajduje się aplikacja kliencka pamięci podręcznej.For best performance and lowest latency, locate your Azure Cache for Redis in the same region as your cache client application.

Jak naliczane są opłaty za usługę Azure cache for Redis?How am I billed for Azure Cache for Redis?

W tym miejscujest dostępna usługa Azure cache for Redis.Azure Cache for Redis pricing is here. Cennik jest wyświetlany na stronie cennika jako stawka godzinowa.The pricing page lists pricing as an hourly rate. W pamięci podręcznej są naliczane opłaty za minutę od momentu utworzenia pamięci podręcznej do momentu usunięcia pamięci podręcznej.Caches are billed on a per-minute basis from the time that the cache is created until the time that a cache is deleted. Nie ma możliwości zatrzymywania ani wstrzymywania rozliczeń pamięci podręcznej.There is no option for stopping or pausing the billing of a cache.

Czy mogę używać usługi Azure cache for Redis z usługą Azure Government Cloud, chmurą z Chin platformy Azure lub Microsoft Azure (Niemcy)?Can I use Azure Cache for Redis with Azure Government Cloud, Azure China Cloud, or Microsoft Azure Germany?

Tak. pamięć podręczna platformy Azure dla usługi Redis jest dostępna w chmurze Azure Government, Azure Chiny i Microsoft Azure (Niemcy).Yes, Azure Cache for Redis is available in Azure Government Cloud, Azure China 21Vianet Cloud, and Microsoft Azure Germany. Adresy URL służące do uzyskiwania dostępu do pamięci podręcznej platformy Azure dla Redis i zarządzania nią są inne w tych chmurach w porównaniu z chmurą publicznąThe URLs for accessing and managing Azure Cache for Redis are different in these clouds compared with Azure Public Cloud.

ChmuraCloud Sufiks DNS dla RedisDns Suffix for Redis
PublicznePublic *.redis.cache.windows.net*.redis.cache.windows.net
US GovUS Gov *.redis.cache.usgovcloudapi.net*.redis.cache.usgovcloudapi.net
NiemcyGermany *.redis.cache.cloudapi.de*.redis.cache.cloudapi.de
ChinyChina *.redis.cache.chinacloudapi.cn*.redis.cache.chinacloudapi.cn

Aby uzyskać więcej informacji na temat zagadnień dotyczących używania usługi Azure cache for Redis z innymi chmurami, zobacz następujące linki.For more information on considerations when using Azure Cache for Redis with other clouds, see the following links.

Aby uzyskać informacje na temat korzystania z usługi Azure cache for Redis z programem PowerShell w chmurze Azure Government, Azure Chiny i Microsoft Azure (Niemcy), zobacz jak nawiązać połączenie z innymi chmurami — pamięć podręczna Azure dla programu 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.

Do czego służy opcja konfiguracji StackExchange. Redis?What do the StackExchange.Redis configuration options do?

StackExchange. Redis ma wiele opcji.StackExchange.Redis has many options. W tej sekcji przedstawiono niektóre typowe ustawienia.This section talks about some of the common settings. Aby uzyskać szczegółowe informacje na temat opcji StackExchange. Redis, zobacz stackexchange. Redis Configuration.For more detailed information about StackExchange.Redis options, see StackExchange.Redis configuration.

ConfigurationOptionsConfigurationOptions OpisDescription ZalecenieRecommendation
AbortOnConnectFailAbortOnConnectFail Po ustawieniu na wartość true połączenie nie zostanie ponownie nawiązane po awarii sieci.When set to true, the connection will not reconnect after a network failure. Ustaw wartość false i zezwól na automatyczne łączenie StackExchange. Redis.Set to false and let StackExchange.Redis reconnect automatically.
ConnectRetryConnectRetry Liczba powtórzeń prób połączenia podczas początkowego połączenia.The number of times to repeat connection attempts during initial connect. Aby uzyskać wskazówki, zobacz następujące uwagi.See the following notes for guidance.
ConnectTimeoutConnectTimeout Limit czasu dla operacji połączenia w MS.Timeout in ms for connect operations. Aby uzyskać wskazówki, zobacz następujące uwagi.See the following notes for guidance.

Zwykle wartości domyślne klienta są wystarczające.Usually the default values of the client are sufficient. Możesz dostosować opcje w zależności od obciążenia.You can fine-tune the options based on your workload.

  • Ponownych próbRetries

    • W przypadku ConnectRetry i ConnectTimeout ogólne wskazówki są szybkie i ponawiane.For ConnectRetry and ConnectTimeout, the general guidance is to fail fast and retry again. Wskazówki te są oparte na obciążeniu i ile czasu na średnim jest to, aby klient mógł wydać polecenie Redis i odebrać odpowiedź.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.
    • Zezwól programowi StackExchange. Redis na automatyczne ponowne nawiązywanie połączenia zamiast sprawdzania stanu połączenia i samodzielnego łączenia się.Let StackExchange.Redis automatically reconnect instead of checking connection status and reconnecting yourself. Unikaj używania właściwości ConnectionMultiplexer. IsConnected.Avoid using the ConnectionMultiplexer.IsConnected property.
    • Snowballing — czasami może wystąpić problem polegający na tym, że ponawianie próby, a ponowne próby Snowball i nigdy nie są odzyskiwane.Snowballing - sometimes you may run into an issue where you are retrying and the retries snowball and never recovers. Jeśli wystąpią Snowballing, należy rozważyć użycie wykładniczego algorytmu ponowienia wycofywania, zgodnie z opisem w temacie ponowienie ogólnych wskazówek opublikowanych przez firmę Microsoft w ramach systemu praktyk &.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.
  • Wartości limitu czasuTimeout values

    • Zastanów się nad obciążeniem i ustaw odpowiednie wartości.Consider your workload and set the values accordingly. Jeśli przechowujesz duże wartości, ustaw limit czasu na wyższą wartość.If you are storing large values, set the timeout to a higher value.
    • Ustaw AbortOnConnectFail na wartość false i zezwól na ponowne łączenie StackExchange. Redis.Set AbortOnConnectFail to false and let StackExchange.Redis reconnect for you.
    • Użyj pojedynczego wystąpienia ConnectionMultiplexer dla aplikacji.Use a single ConnectionMultiplexer instance for the application. Można użyć LazyConnection do utworzenia pojedynczego wystąpienia, które jest zwracane przez właściwość połączenia, jak pokazano w Połącz z pamięcią podręczną przy użyciu klasy 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.
    • Ustaw właściwość ConnectionMultiplexer.ClientName na unikatową nazwę wystąpienia aplikacji dla celów diagnostycznych.Set the ConnectionMultiplexer.ClientName property to an app instance unique name for diagnostic purposes.
    • Używaj wielu wystąpień ConnectionMultiplexer dla obciążeń niestandardowych.Use multiple ConnectionMultiplexer instances for custom workloads.
      • Możesz obsłużyć ten model, jeśli masz różne obciążenia w aplikacji.You can follow this model if you have varying load in your application. Przykład:For example:
      • Możesz mieć jeden multiplekser do celów związanych z dużymi kluczami.You can have one multiplexer for dealing with large keys.
      • Można mieć jeden multiplekser do obsługi małych kluczy.You can have one multiplexer for dealing with small keys.
      • Można ustawić różne wartości limitów czasu połączenia i logikę ponowień dla wszystkich używanych ConnectionMultiplexer.You can set different values for connection timeouts and retry logic for each ConnectionMultiplexer that you use.
      • Ustaw właściwość ClientName każdego multipleksera, aby ułatwić diagnostykę.Set the ClientName property on each multiplexer to help with diagnostics.
      • Te wskazówki mogą prowadzić do bardziej usprawnionych opóźnień na ConnectionMultiplexer.This guidance may lead to more streamlined latency per ConnectionMultiplexer.

Do jakiej usługi Azure cache for Redis klienci mogą korzystać?What Azure Cache for Redis clients can I use?

Jednym z wspaniałych Redis jest to, że wielu klientów obsługuje wiele różnych języków deweloperskich.One of the great things about Redis is that there are many clients supporting many different development languages. Aby uzyskać aktualną listę klientów, zobacz Redis clients.For a current list of clients, see Redis clients. Samouczki, które obejmują kilka różnych języków i klientów, znajdują się w temacie jak używać usługi Azure cache for Redis i elementów równorzędnych w spisie treści.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.

Pobieranie nazwy hosta, portów i kluczy dostępu z Azure PortalRetrieve host name, ports, and access keys from the Azure portal

Aby nawiązać połączenie z usługą Azure cache for Redis, klienci pamięci podręcznej potrzebują nazwy hosta, portów i klucza dla pamięci podręcznej.To connect to an Azure Cache for Redis instance, cache clients need the host name, ports, and a key for the cache. Niektórzy klienci mogą odwoływać się do tych elementów przy użyciu nieco innych nazw.Some clients might refer to these items by slightly different names. Możesz uzyskać nazwę hosta, porty i klucze z Azure Portal.You can get the host name, ports, and keys from the Azure portal.

  • Aby uzyskać klucze dostępu, w obszarze nawigacji po lewej stronie wybierz pozycję klucze dostępu.To get the access keys, from your cache left navigation, select Access keys.

    Klucze usługi Azure Cache for Redis

  • Aby uzyskać nazwę hosta i porty, z okienka nawigacji po lewej stronie wybierz pozycję Właściwości.To get the host name and ports, from your cache left navigation, select Properties. Nazwa hosta ma postać <nazw DNS >. Redis. cache. Windows. NET.The host name is of the form <DNS name>.redis.cache.windows.net.

    Właściwości usługi Azure Cache for Redis

Czy istnieje emulator lokalny dla usługi Azure cache for Redis?Is there a local emulator for Azure Cache for Redis?

Nie ma lokalnego emulatora dla usługi Azure cache for Redis, ale można uruchomić wersję MSOpenTech Redis-Server. exe z narzędzi wiersza polecenia Redis na komputerze lokalnym i połączyć się z nią w celu uzyskania podobnego środowiska na potrzeby lokalnego emulatora pamięci podręcznej, jak pokazano w następującym przykładzie: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;
        }
    }

Opcjonalnie można skonfigurować plik Redis. conf , aby lepiej pasował do domyślnych ustawień pamięci podręcznej w pamięci podręcznej platformy Azure online dla Redis w razie potrzeby.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.

Jak można uruchomić polecenia Redis?How can I run Redis commands?

Można użyć dowolnego polecenia wymienionego w poleceniach Redis , z wyjątkiem poleceń wymienionych w poleceniach Redis, które nie są obsługiwane w usłudze Azure cache for 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. Istnieje kilka opcji uruchamiania poleceń Redis.You have several options to run Redis commands.

  • W przypadku pamięci podręcznej standardowej lub Premium można uruchamiać polecenia Redis za pomocą konsoli Redis.If you have a Standard or Premium cache, you can run Redis commands using the Redis Console. Konsola Redis zapewnia bezpieczny sposób uruchamiania poleceń Redis w Azure Portal.The Redis console provides a secure way to run Redis commands in the Azure portal.
  • Można również użyć narzędzi wiersza polecenia Redis.You can also use the Redis command-line tools. Aby ich użyć, wykonaj następujące czynności:To use them, perform the following steps:
  • Pobierz narzędzia wiersza polecenia Redis.Download the Redis command-line tools.
  • Połącz się z pamięcią podręczną przy użyciu redis-cli.exe.Connect to the cache using redis-cli.exe. Przekaż punkt końcowy pamięci podręcznej przy użyciu przełącznika-h i klucza przy użyciu-a, jak pokazano w następującym przykładzie: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>

Uwaga

Narzędzia wiersza polecenia Redis nie działają z portem SSL, ale można użyć narzędzia, takiego jak stunnel, aby bezpiecznie połączyć narzędzia z portem SSL, postępując zgodnie z instrukcjami w temacie jak używać narzędzia wiersza polecenia Redis z usługą Azure cache for 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.

Dlaczego usługa Azure cache for Redis ma bibliotekę klas MSDN, jak w przypadku niektórych innych usług platformy Azure?Why doesn't Azure Cache for Redis have an MSDN class library reference like some of the other Azure services?

Usługa Microsoft Azure Cache for Redis jest oparta na popularnym rozwiązaniu open source Azure Cache for Redis.Microsoft Azure Cache for Redis is based on the popular open-source Azure Cache for Redis. Dostęp do niego może uzyskać wiele różnych klientów Redis w wielu językach programowania.It can be accessed by a wide variety of Redis clients for many programming languages. Każdy klient ma własny interfejs API, który wysyła wywołania do usługi Azure cache for Redis za pomocą poleceń Redis.Each client has its own API that makes calls to the Azure Cache for Redis instance using Redis commands.

Ponieważ każdy klient różni się od siebie, w witrynie MSDN nie ma jednego scentralizowanego odwołania do klasy, a każdy klient utrzymuje własną dokumentację referencyjną.Because each client is different, there is not one centralized class reference on MSDN, and each client maintains its own reference documentation. Oprócz dokumentacji referencyjnej istnieje kilka samouczków przedstawiających sposób rozpoczynania pracy z usługą Azure cache for Redis przy użyciu różnych języków i klientów pamięci podręcznej.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. Aby uzyskać dostęp do tych samouczków, zobacz jak używać usługi Azure cache for Redis i elementów równorzędnych w spisie treści.To access these tutorials, see How to use Azure Cache for Redis and it's sibling articles in the table of contents.

Czy można używać usługi Azure cache for Redis jako pamięci podręcznej sesji języka PHP?Can I use Azure Cache for Redis as a PHP session cache?

Tak, aby używać usługi Azure cache for Redis jako pamięci podręcznej sesji języka PHP, należy określić parametry połączenia dla wystąpienia Redis w pamięci podręcznej platformy Azure w 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.

Ważne

W przypadku używania usługi Azure cache for Redis jako pamięci podręcznej sesji języka PHP należy zakodować klucz zabezpieczeń używany do nawiązywania połączenia z pamięcią podręczną, jak pokazano w następującym przykładzie: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>";

Jeśli klucz nie jest zakodowany w adresie URL, może wystąpić wyjątek z komunikatem, taki jak: 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

Aby uzyskać więcej informacji o korzystaniu z usługi Azure cache for Redis jako pamięci podręcznej sesji PHP z klientem PhpRedis, zobacz program obsługi sesji języka PHP.For more information about using Azure Cache for Redis as a PHP session cache with the PhpRedis client, see PHP Session handler.

Co to są bazy danych Redis?What are Redis databases?

Bazy danych Redis to logiczne rozdzielenie danych w tym samym wystąpieniu Redis.Redis Databases are just a logical separation of data within the same Redis instance. Pamięć podręczna jest udostępniana między wszystkimi bazami danych a rzeczywistym zużyciem pamięci w danej bazie danych zależy od kluczy/wartości przechowywanych w tej bazie danych.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. Na przykład pamięć podręczna C6 ma 53 GB pamięci, a P5 ma 120 GB.For example, a C6 cache has 53 GB of memory, and a P5 has 120 GB. Można wybrać opcję umieszczenia wszystkich 53 GB/120 GB w jednej bazie danych lub podzielić ją między wiele baz danych.You can choose to put all 53 GB / 120 GB into one database or you can split it up between multiple databases.

Uwaga

W przypadku korzystania z pamięci podręcznej systemu Azure w warstwie Premium dla Redis z włączoną obsługą klastrowania dostępna jest tylko baza danych 0.When using a Premium Azure Cache for Redis with clustering enabled, only database 0 is available. To ograniczenie jest wewnętrznym ograniczeniem Redis i nie jest specyficzne dla usługi Azure cache for Redis.This limitation is an intrinsic Redis limitation and is not specific to Azure Cache for Redis. Aby uzyskać więcej informacji, zobacz Czy muszę wprowadzić zmiany w aplikacji klienckiej w celu korzystania z klastrowania?For more information, see Do I need to make any changes to my client application to use clustering?

Kiedy należy włączyć port bez protokołu SSL w celu nawiązania połączenia z usługą Redis?When should I enable the non-SSL port for connecting to Redis?

Serwer Redis nie obsługuje natywnie protokołu SSL, ale usługa Azure cache for Redis działa.Redis server does not natively support SSL, but Azure Cache for Redis does. Jeśli łączysz się z usługą Azure cache for Redis, a klient obsługuje protokół SSL, taki jak StackExchange. Redis, należy użyć protokołu SSL.If you are connecting to Azure Cache for Redis and your client supports SSL, like StackExchange.Redis, then you should use SSL.

Uwaga

Port bez protokołu SSL jest domyślnie wyłączony dla nowej pamięci podręcznej platformy Azure dla wystąpień Redis.The non-SSL port is disabled by default for new Azure Cache for Redis instances. Jeśli klient nie obsługuje protokołu SSL, należy włączyć port inny niż SSL, postępując zgodnie z instrukcjami w sekcji porty dostępu w artykule Konfigurowanie pamięci podręcznej w usłudze Azure cache for 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.

Narzędzia Redis, takie jak redis-cli nie współpracują z portem SSL, ale można użyć narzędzia, takiego jak stunnel, aby bezpiecznie połączyć narzędzia z portem SSL, postępując zgodnie z instrukcjami wyświetlanymi w blogu dostawca stanu sesji ASP.NET dla Redis wersji zapoznawczej .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.

Instrukcje dotyczące pobierania narzędzi Redis można znaleźć w sekcji jak uruchomić polecenia Redis?For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Jakie są najlepsze rozwiązania w zakresie produkcji?What are some production best practices?

StackExchange. Redis — najlepsze rozwiązaniaStackExchange.Redis best practices

  • Ustaw AbortConnect na wartość false, a następnie pozwól na automatyczne łączenie się z usługą ConnectionMultiplexer.Set AbortConnect to false, then let the ConnectionMultiplexer reconnect automatically. Zobacz tutaj, aby uzyskać szczegółowe informacje.See here for details.
  • Ponownie Użyj ConnectionMultiplexer — nie twórz nowego dla każdego żądania.Reuse the ConnectionMultiplexer - do not create a new one for each request. Wzorzec Lazy<ConnectionMultiplexer> przedstawiony tutaj jest zalecany.The Lazy<ConnectionMultiplexer> pattern shown here is recommended.
  • Redis najlepiej sprawdza się w przypadku mniejszych wartości, więc Rozważ powiększanie większych danych do wielu kluczy.Redis works best with smaller values, so consider chopping up bigger data into multiple keys. W tej dyskusji Redis100 KB jest traktowane jako duże.In this Redis discussion, 100 kb is considered large. Przeczytaj ten artykuł , aby zapoznać się z przykładowym problemem, który może być spowodowany przez duże wartości.Read this article for an example problem that can be caused by large values.
  • Skonfiguruj Ustawienia puli wątków , aby uniknąć przekroczeń limitu czasu.Configure your ThreadPool settings to avoid timeouts.
  • Użyj co najmniej wartości domyślnej connectTimeout wynoszącej 5 sekund.Use at least the default connectTimeout of 5 seconds. Ten interwał daje StackExchange. Redis wystarczająco dużo czasu, aby ponownie nawiązać połączenie w przypadku Blip sieci.This interval gives StackExchange.Redis sufficient time to re-establish the connection in the event of a network blip.
  • Należy pamiętać o kosztach wydajności związanych z różnymi operacjami, które są uruchomione.Be aware of the performance costs associated with different operations you are running. Na przykład polecenie KEYS jest operacją O (n) i należy ją uniknąć.For instance, the KEYS command is an O(n) operation and should be avoided. Lokacja Redis.IO zawiera szczegółowe informacje o złożoności czasu dla każdej obsługiwanej operacji.The redis.io site has details around the time complexity for each operation that it supports. Kliknij każde polecenie, aby zobaczyć złożoność każdej operacji.Click each command to see the complexity for each operation.

Konfiguracja i koncepcjeConfiguration and concepts

  • Użyj warstwy Standardowa lub Premium dla systemów produkcyjnych.Use Standard or Premium Tier for Production systems. Warstwa Podstawowa to system z jednym węzłem bez replikacji danych i bez umowy SLA.The Basic Tier is a single node system with no data replication and no SLA. Ponadto można użyć przynajmniej pamięci podręcznej C1.Also, use at least a C1 cache. Pamięć podręczna C0 jest zwykle używana w przypadku prostych scenariuszy tworzenia i testowania.C0 caches are typically used for simple dev/test scenarios.
  • Należy pamiętać, że Redis jest magazynem danych w pamięci .Remember that Redis is an In-Memory data store. Przeczytaj ten artykuł , aby poznać scenariusze, w których może wystąpić utrata danych.Read this article so that you are aware of scenarios where data loss can occur.
  • Opracowywanie systemu w taki sposób, aby mógł obsługiwać Blips połączeń z powodu stosowania poprawek i trybu failover.Develop your system such that it can handle connection blips due to patching and failover.

Testowanie wydajnościowePerformance testing

  • Zacznij od używania redis-benchmark.exe, aby uzyskać dostęp do możliwej przepływności przed napisaniem własnych testów wydajności.Start by using redis-benchmark.exe to get a feel for possible throughput before writing your own perf tests. Ponieważ redis-benchmark nie obsługuje protokołu SSL, należy włączyć port bez protokołu SSL przez Azure Portal przed uruchomieniem testu.Because redis-benchmark does not support SSL, you must enable the Non-SSL port through the Azure portal before you run the test. Aby zapoznać się z przykładami, zobacz Jak sprawdzić i przetestować wydajność mojej pamięci podręcznej?For examples, see How can I benchmark and test the performance of my cache?
  • Maszyna wirtualna klienta użyta do testowania powinna znajdować się w tym samym regionie co usługa Azure cache for Redis.The client VM used for testing should be in the same region as your Azure Cache for Redis instance.
  • Zalecamy używanie serii maszyn wirtualnych Dv2 dla klienta, ponieważ mają one lepszy sprzęt i powinny dawać najlepsze wyniki.We recommend using Dv2 VM Series for your client as they have better hardware and should give the best results.
  • Upewnij się, że wybrana maszyna wirtualna klienta ma co najmniej tyle możliwości obliczeniowych i przepustowości jak w przypadku testowanej pamięci podręcznej.Make sure your client VM you choose has at least as much computing and bandwidth capability as the cache you are testing.
  • Jeśli korzystasz z systemu Windows, Włącz opcję wirtualnego skalowania na komputerze klienckim.Enable VRSS on the client machine if you are on Windows. Zobacz tutaj, aby uzyskać szczegółowe informacje.See here for details.
  • Wystąpienia usługi Redis w warstwie Premium mają lepsze opóźnienia sieci i przepływność, ponieważ działają na lepszym sprzęcie dla obu procesorów i sieci.Premium tier Redis instances have better network latency and throughput because they are running on better hardware for both CPU and Network.

Jakie kwestie należy wziąć pod uwagę podczas korzystania z typowych poleceń Redis?What are some of the considerations when using common Redis commands?

  • Należy unikać używania niektórych poleceń Redis, których wykonanie trwa długo, chyba że w pełni zrozumiesz wpływ tych poleceń.Avoid using certain Redis commands that take a long time to complete, unless you fully understand the impact of these commands. Na przykład nie należy uruchamiać poleceń Keys w środowisku produkcyjnym.For example, do not run the KEYS command in production. W zależności od liczby kluczy powracanie może potrwać dużo czasu.Depending on the number of keys, it could take a long time to return. Redis to jednowątkowy serwer i przetwarza polecenia pojedynczo.Redis is a single-threaded server and it processes commands one at a time. Jeśli masz inne polecenia wydane po KLUCZu, nie zostaną one przetworzone do momentu, gdy Redis przetwarza polecenie KEYS.If you have other commands issued after KEYS, they will not be processed until Redis processes the KEYS command. Lokacja Redis.IO zawiera szczegółowe informacje o złożoności czasu dla każdej obsługiwanej operacji.The redis.io site has details around the time complexity for each operation that it supports. Kliknij każde polecenie, aby zobaczyć złożoność każdej operacji.Click each command to see the complexity for each operation.
  • Rozmiary kluczy — czy należy używać małych kluczy/wartości, czy też dużych wartości klucz/wartość?Key sizes - should I use small key/values or large key/values? Jest to zależne od scenariusza.It depends on the scenario. Jeśli w scenariuszu wymagane są większe klucze, można dostosować wartość parametru ConnectionTimeout, a następnie ponowić próbę i dostosować logikę ponowień.If your scenario requires larger keys, you can adjust the ConnectionTimeout, then retry values and adjust your retry logic. W perspektywie serwera Redis mniejsze wartości zapewniają lepszą wydajność.From a Redis server perspective, smaller values give better performance.
  • Te zagadnienia nie oznacza, że nie można przechowywać większych wartości w Redis; należy pamiętać o następujących kwestiach.These considerations don't mean that you can't store larger values in Redis; you must be aware of the following considerations. Opóźnienia będą wyższe.Latencies will be higher. Jeśli masz jeden zestaw danych, który jest większy i który jest mniejszy, możesz użyć wielu wystąpień ConnectionMultiplexer, z których każda została skonfigurowana z innym zestawem limitów czasu i ponownych prób, zgodnie z opisem w poprzedniej sekcji Opcje konfiguracji 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.

Jak można sprawdzić i przetestować wydajność mojej pamięci podręcznej?How can I benchmark and test the performance of my cache?

  • Włącz diagnostykę pamięci podręcznej, aby móc monitorować jej kondycję.Enable cache diagnostics so you can monitor the health of your cache. Możesz wyświetlać metryki w witrynie Azure Portal oraz pobierać i przeglądać je przy użyciu wybranych przez siebie narzędzi.You can view the metrics in the Azure portal and you can also download and review them using the tools of your choice.
  • Można użyć Redis-Benchmark. exe do załadowania testowego serwera Redis.You can use redis-benchmark.exe to load test your Redis server.
  • Upewnij się, że klient testowania obciążenia i pamięć podręczna platformy Azure dla Redis znajdują się w tym samym regionie.Ensure that the load testing client and the Azure Cache for Redis are in the same region.
  • Użyj Redis-CLI. exe i monitoruj pamięć podręczną za pomocą polecenia INFO.Use redis-cli.exe and monitor the cache using the INFO command.
  • Jeśli obciążenie powoduje duże fragmentację pamięci, należy skalować w górę do większego rozmiaru pamięci podręcznej.If your load is causing high memory fragmentation, you should scale up to a larger cache size.
  • Instrukcje dotyczące pobierania narzędzi Redis można znaleźć w sekcji jak uruchomić polecenia Redis?For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Poniższe polecenia zapewniają przykład korzystania z programu Redis-Benchmark. exe.The following commands provide an example of using redis-benchmark.exe. Aby uzyskać dokładne wyniki, Uruchom te polecenia z maszyny wirtualnej w tym samym regionie, w którym znajduje się pamięć podręczna.For accurate results, run these commands from a VM in the same region as your cache.

  • Testuj żądania zestawu potokowego przy użyciu ładunku 1KTest 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

  • Testuj potok żądania GET przy użyciu ładunku o mocy 1K.Test Pipelined GET requests using a 1k payload. Uwaga: aby wypełnić pamięć podręczną, uruchom najpierw określony testNOTE: 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

Ważne szczegóły dotyczące wzrostu puli wątkówImportant details about ThreadPool growth

W wątkach CLR istnieją dwa typy wątków — wątki "Worker" i "Port zakończenia we/wy" (portu).The CLR ThreadPool has two types of threads - "Worker" and "I/O Completion Port" (IOCP) threads.

  • Wątki robocze są używane dla elementów, takich jak przetwarzanie Task.Run(…)lub ThreadPool.QueueUserWorkItem(…) metod.Worker threads are used for things like processing the Task.Run(…), or ThreadPool.QueueUserWorkItem(…) methods. Te wątki są również używane przez różne składniki w środowisku CLR, gdy działanie musi się zdarzyć w wątku w tle.These threads are also used by various components in the CLR when work needs to happen on a background thread.
  • Wątki portu są używane, gdy odbywa się asynchroniczne operacje we/wy, takie jak podczas odczytywania z sieci.IOCP threads are used when asynchronous IO happens, such as when reading from the network.

Pula wątków udostępnia nowe wątki procesów roboczych lub wątki zakończenia operacji we/wy na żądanie (bez ograniczania przepustowości), dopóki nie osiągnie ustawienia "minimalne" dla każdego typu wątku.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. Domyślnie minimalna liczba wątków jest ustawiona na liczbę procesorów w systemie.By default, the minimum number of threads is set to the number of processors on a system.

Gdy liczba istniejących (zajętych) wątków trafi na "minimalną" liczbę wątków, zostanie ograniczona szybkość, z jaką wprowadza nowe wątki do jednego wątku na 500 milisekund.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. Zwykle, jeśli system pobiera szereg zadań potrzebnych do wątku portu, będzie on szybko przetwarzał te działania.Typically, if your system gets a burst of work needing an IOCP thread, it will process that work quickly. Jeśli jednak obciążenie serii pracy jest większe niż skonfigurowane ustawienie "minimalne", nastąpi kilka opóźnień podczas przetwarzania części pracy, ponieważ jest ona zależna od jednego z dwóch rzeczy.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. Istniejący wątek będzie bezpłatny, aby przetworzyć prace.An existing thread becomes free to process the work.
  2. Żaden z istniejących wątków nie jest bezpłatny dla 500 MS, więc zostanie utworzony nowy wątek.No existing thread becomes free for 500 ms, so a new thread is created.

W zasadzie oznacza to, że gdy liczba zajętych wątków jest większa niż min, prawdopodobnie płacisz 500-ms opóźnienia przed przetworzeniem ruchu sieciowego przez aplikację.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. Należy również pamiętać, że gdy istniejący wątek pozostaje bezczynny przez dłużej niż 15 sekund (w zależności od tego, co zapamiętasz), zostanie oczyszczony i będzie można powtórzyć ten cykl wzrostu i zmniejszania.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.

Jeśli zobaczysz przykładowy komunikat o błędzie z StackExchange. Redis (kompilacja 1.0.450 lub nowsza), zobaczysz, że teraz jest drukowana Statystyka puli wątków (zobacz szczegóły dotyczące portu i procesu roboczego).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)

W poprzednim przykładzie można zobaczyć, że dla wątku portu są sześć zajętych wątków, a system jest skonfigurowany tak, aby zezwalał na cztery minimalne wątki.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. W takim przypadku klient prawdopodobnie widzi opóźnienia 2 500-MS, ponieważ 6 > 4.In this case, the client would have likely seen two 500-ms delays, because 6 > 4.

Należy pamiętać, że StackExchange. Redis może trafiać limitów czasu, jeśli wzrost liczby wątków portu lub roboczych zostanie ograniczony.Note that StackExchange.Redis can hit timeouts if growth of either IOCP or WORKER threads gets throttled.

ZalecenieRecommendation

Mając te informacje, zdecydowanie zalecamy, aby klienci ustawili minimalną wartość konfiguracji dla portu i wątków roboczych na wartość większą niż domyślna.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. Firma Microsoft nie może podać wskazówek o jednym rozmiarze, które dotyczą tej wartości, ponieważ odpowiednia wartość dla jednej aplikacji będzie prawdopodobnie zbyt wysoka lub niska dla innej aplikacji.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. To ustawienie może również mieć wpływ na wydajność innych części skomplikowanych aplikacji, więc każdy klient musi dostosować to ustawienie do swoich konkretnych potrzeb.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. Dobrym miejscem początkowym jest 200 lub 300, a następnie testowanie i dostosowywanie zgodnie z wymaganiami.A good starting place is 200 or 300, then test and tweak as needed.

Jak skonfigurować to ustawienie: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);
}

Uwaga

Wartość określona przez tę metodę jest ustawieniem globalnym wpływającym na całą domenę aplikacji.The value specified by this method is a global setting, affecting the whole AppDomain. Na przykład jeśli masz maszynę 4-rdzeniową i chcesz ustawić MinWorkerThreads i minIoThreads na 50 na procesor CPU podczas wykonywania, użyj puli wątków. 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).

  • Można również określić ustawienie minimalnych wątków przy użyciu Ustawienia konfiguracji MinIoThreads lub MinWorkerThreads w obszarze <processModel> konfiguracji w Machine.config, zwykle w %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\. Ustawienie minimalnej liczby wątków w ten sposób zwykle nie jest zalecane, ponieważ jest to ustawienie na poziomie całego systemu.Setting the number of minimum threads in this way is generally not recommended, because it is a System-wide setting.

    Uwaga

    Wartość określona w tym elemencie konfiguracji jest ustawieniem na rdzeń .The value specified in this configuration element is a per-core setting. Na przykład jeśli masz maszynę 4-rdzeniową i chcesz, aby ustawienie minIoThreads było 200 w czasie wykonywania, użyj <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"/>.

Włącz serwer GC, aby uzyskać większą przepływność na kliencie przy użyciu StackExchange. RedisEnable server GC to get more throughput on the client when using StackExchange.Redis

Włączenie serwera GC może zoptymalizować klienta i zapewnić lepszą wydajność i przepływność przy użyciu StackExchange. Redis.Enabling server GC can optimize the client and provide better performance and throughput when using StackExchange.Redis. Aby uzyskać więcej informacji na temat serwera GC i sposobu jego włączania, zobacz następujące artykuły:For more information on server GC and how to enable it, see the following articles:

Zagadnienia dotyczące wydajności dotyczące połączeńPerformance considerations around connections

Każda warstwa cenowa ma różne limity dla połączeń klientów, pamięci i przepustowości.Each pricing tier has different limits for client connections, memory, and bandwidth. Chociaż każdy rozmiar pamięci podręcznej pozwala na określoną liczbę połączeń, każde połączenie z usługą Redis ma powiązane z nim obciążenie.While each size of cache allows up to a certain number of connections, each connection to Redis has overhead associated with it. Przykładem takiego obciążenia będzie użycie procesora CPU i pamięci w wyniku szyfrowania TLS/SSL.An example of such overhead would be CPU and memory usage as a result of TLS/SSL encryption. Maksymalny limit połączeń dla danego rozmiaru pamięci podręcznej zakłada, że pamięć podręczna została załadowana w sposób jasny.The maximum connection limit for a given cache size assumes a lightly loaded cache. Jeśli obciążenie związane z naliczeniem połączenia i obciążenie z operacji klienta przekroczy pojemność systemu, pamięć podręczna może mieć problemy z pojemnością, nawet jeśli nie przekroczono limitu połączenia dla bieżącego rozmiaru pamięci podręcznej.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.

Aby uzyskać więcej informacji na temat różnych limitów połączeń dla każdej warstwy, zobacz Azure cache for Redis — Cennik.For more information about the different connections limits for each tier, see Azure Cache for Redis pricing. Aby uzyskać więcej informacji o połączeniach i innych konfiguracjach domyślnych, zobacz domyślną konfigurację serwera Redis.For more information about connections and other default configurations, see Default Redis server configuration.

Jak mogę monitorować kondycję i wydajność mojej pamięci podręcznej?How do I monitor the health and performance of my cache?

Pamięć podręczna Microsoft Azure wystąpień Redis można monitorować w Azure Portal.Microsoft Azure Cache for Redis instances can be monitored in the Azure portal. Możesz wyświetlić metryki, przypiąć wykresy metryk do tablicy startowej, dostosować zakres daty i godziny wykresów monitorowania, dodać i usunąć metryki z wykresów i ustawić alerty w przypadku spełnienia określonych warunków.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. Aby uzyskać więcej informacji, zobacz monitorowanie usługi Azure cache for Redis.For more information, see Monitor Azure Cache for Redis.

Menu zasobów usługi Azure cache for Redis zawiera również kilka narzędzi do monitorowania i rozwiązywania problemów z pamięcią podręczną.The Azure Cache for Redis Resource menu also contains several tools for monitoring and troubleshooting your caches.

  • Diagnozowanie i rozwiązywanie problemów zawiera informacje o typowych problemach i strategiach ich rozwiązywania.Diagnose and solve problems provides information about common issues and strategies for resolving them.
  • Kondycja zasobu obserwuje zasób i informuje o tym, że działa zgodnie z oczekiwaniami.Resource health watches your resource and tells you if it's running as expected. Aby uzyskać więcej informacji o usłudze Azure Resource Health, zobacz Omówienie usługi Azure Resource Health.For more information about the Azure Resource health service, see Azure Resource health overview.
  • Nowe żądanie obsługi oferuje opcje otwierania żądania obsługi dla pamięci podręcznej.New support request provides options to open a support request for your cache.

Te narzędzia umożliwiają monitorowanie kondycji pamięci podręcznej platformy Azure dla wystąpień Redis i ułatwiają zarządzanie aplikacjami buforowania.These tools enable you to monitor the health of your Azure Cache for Redis instances and help you manage your caching applications. Aby uzyskać więcej informacji, zobacz sekcję "Obsługa & ustawień rozwiązywania problemów" w temacie jak skonfigurować usługę Azure cache for Redis.For more information, see the "Support & troubleshooting settings" section of How to configure Azure Cache for Redis.

Dlaczego widzę limity czasu?Why am I seeing timeouts?

Limity czasu są wykonywane na kliencie, który jest używany do komunikowania się z Redis.Timeouts happen in the client that you use to talk to Redis. Gdy polecenie jest wysyłane do serwera Redis, polecenie jest umieszczane w kolejce, a serwer Redis ostatecznie wybiera polecenie i wykonuje je.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. Jednak klient może przekroczyć limit czasu w trakcie tego procesu, a jeśli zostanie zgłoszony wyjątek na stronie wywołującej.However the client can time out during this process and if it does an exception is raised on the calling side. Aby uzyskać więcej informacji na temat rozwiązywania problemów z limitem czasu, zobacz wyjątki limitów czasu po stronie klienta i stackexchange. Redis.For more information on troubleshooting timeout issues, see client-side troubleshooting and StackExchange.Redis timeout exceptions.

Dlaczego mój klient odłączył się od pamięci podręcznej?Why was my client disconnected from the cache?

Poniżej przedstawiono kilka typowych przyczyn odłączenia pamięci podręcznej.The following are some common reason for a cache disconnect.

  • Przyczyny po stronie klientaClient-side causes
    • Aplikacja kliencka została wdrożona ponownie.The client application was redeployed.
    • Aplikacja kliencka wykonała operację skalowania.The client application performed a scaling operation.
      • W przypadku Cloud Services lub Web Apps może to być spowodowane skalowaniem automatycznym.In the case of Cloud Services or Web Apps, this may be due to autoscaling.
    • Zmieniono warstwę sieciową po stronie klienta.The networking layer on the client side changed.
    • Wystąpił błąd przejściowy w kliencie lub w węzłach sieciowych między klientem a serwerem.Transient errors occurred in the client or in the network nodes between the client and the server.
    • Osiągnięto limity progu przepustowości.The bandwidth threshold limits were reached.
    • Operacje związane z procesorem CPU trwały zbyt długo.CPU bound operations took too long to complete.
  • Przyczyny po stronie serweraServer-side causes
    • W przypadku standardowej oferty pamięci podręcznej usługa Azure cache for Redis zainicjowała przechodzenie w tryb failover z węzła podstawowego do węzła pomocniczego.On the standard cache offering, the Azure Cache for Redis service initiated a fail-over from the primary node to the secondary node.
    • Platforma Azure nastąpiła poprawka do wystąpienia, w którym została wdrożona pamięć podręcznaAzure was patching the instance where the cache was deployed
      • Może to dotyczyć aktualizacji serwera Redis lub ogólnej konserwacji maszyn wirtualnych.This can be for Redis server updates or general VM maintenance.

Która oferta pamięci podręcznej systemu Azure jest dla mnie najlepsza?Which Azure Cache offering is right for me?

Ważne

Zgodnie z ogłoszeniemw ciągu ostatniego roku usługi Azure Managed Cache Service i Azure pamięć podręczna oparta na roli Service zostały wycofane 30 listopada 2016.As per last year's announcement, Azure Managed Cache Service and Azure In-Role Cache service have been retired on November 30, 2016. Naszym rekomendacją jest użycie usługi Azure cache for Redis.Our recommendation is to use Azure Cache for Redis. Aby uzyskać informacje na temat migracji, zobacz Migrowanie z Managed Cache Service do usługi Azure cache for Redis.For information on migrating, see Migrate from Managed Cache Service to Azure Cache for Redis.

Azure Cache for RedisAzure Cache for Redis

Pamięć podręczna platformy Azure dla usługi Redis jest ogólnie dostępna w rozmiarach do 120 GB i ma umowę SLA dotyczącą dostępności 99,9%.Azure Cache for Redis is Generally Available in sizes up to 120 GB and has an availability SLA of 99.9%. Nowa warstwa Premium oferuje rozmiary do 1,2 TB i obsługę klastrowania, sieci wirtualnej i trwałości, z umową SLA na 99,9%.The new premium tier offers sizes up to 1.2 TB and support for clustering, VNET, and persistence, with a 99.9% SLA.

Usługa Azure cache for Redis umożliwia klientom korzystanie z bezpiecznej, dedykowanej pamięci podręcznej platformy Azure dla Redis, zarządzanej przez firmę Microsoft.Azure Cache for Redis gives customers the ability to use a secure, dedicated Azure Cache for Redis, managed by Microsoft. Dzięki tej ofercie uzyskasz dostęp do bogatego zestawu funkcji i ekosystemu zapewnianego przez Redis oraz niezawodnego hostingu i monitorowania od firmy Microsoft.With this offer, you get to leverage the rich feature set and ecosystem provided by Redis, and reliable hosting and monitoring from Microsoft.

W przeciwieństwie do tradycyjnych pamięci podręcznych, które dotyczą tylko par klucz-wartość, Redis jest popularne dla wysoce wydajnych typów danych.Unlike traditional caches that deal only with key-value pairs, Redis is popular for its highly performant data types. Redis obsługuje również wykonywanie operacji niepodzielnych na tych typach, takich jak dołączanie do ciągu; zwiększanie wartości w skrócie; wypychanie do listy; obliczenia zbiorowe, związek i różnica; lub pobierając element członkowski z najwyższą klasyfikacją w posortowanym zestawie.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. Inne funkcje obejmują obsługę transakcji, publikowania/podLua skryptów, kluczy z ograniczonym czasem wygaśnięcia oraz ustawień konfiguracji, aby Redis zachować więcej jak tradycyjną pamięć podręczną.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.

Innym najważniejszym aspektem do Redis sukcesu jest dobra w dobrej kondycji ekosystem "open source".Another key aspect to Redis success is the healthy, vibrant open- source ecosystem built around it. Jest to odzwierciedlone w różnorodnym zestawie klientów Redis dostępnych w wielu językach.This is reflected in the diverse set of Redis clients available across multiple languages. Ten ekosystem i szeroki zakres klientów umożliwiają korzystanie z usługi Azure cache for Redis przez niemal każde obciążenie, które ma zostać skompilowane w ramach platformy 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.

Aby uzyskać więcej informacji na temat rozpoczynania pracy z usługą Azure cache for Redis, zobacz jak korzystać z usługi Azure cache for Redis i pamięci podręcznej platformy Azure w celu uzyskania dokumentacji 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.

Usługa zarządzanej pamięci podręcznejManaged Cache service

Usługa zarządzanej pamięci podręcznej została wycofana 30 listopada 2016.Managed Cache service was retired November 30, 2016.

Aby wyświetlić archiwalną dokumentację, zapoznaj się z dokumentacją archiwalną Managed Cache Service.To view archived documentation, see Archived Managed Cache Service Documentation.

Pamięć podręczna oparta na roliIn-Role Cache

Pamięć podręczna oparta na roli został wycofany 30 listopada 2016.In-Role Cache was retired November 30, 2016.

Aby wyświetlić archiwalną dokumentację, zapoznaj się z dokumentacją archiwalną pamięć podręczna oparta na roli.To view archived documentation, see Archived In-Role Cache Documentation.