πŸ€Ήβ™‚οΈ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅? πŸšΆβ™€οΈ

Π˜ΠΌΠ΅Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅ Π²ΠΎ врСмя ΠΏΡ€ΠΎΠ³ΡƒΠ»ΠΎΠΊ — ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ πŸšΆβ™€οΈπŸšΆβ™‚οΈπŸ’½πŸ’».

Π£Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡΡΡŒ ΠΎΡ‚ ТСлания ΠΊΡ€ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² экран «Cache me outside… how boww daah», ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для мСня. Π― Ρ‚Π°ΠΊΠΆΠ΅ упомяну Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ, ΠΈΡ… ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы. Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ моя Ρ‚ΠΎΡ‡ΠΊΠ° зрСния, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΏΠ°Ρ€Ρƒ совСтов ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² .NET.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это дСйствиС ΠΏΠΎ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ снова ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Ρ‚ΠΈ ΠΊ источнику (ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΉΡ‚ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ мСсто (Π³Π΄Π΅ Π²Ρ‹ ΠΈΡ… сохранили) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ экономитС врСмя ΠΈ дСньги.

…Или, ΠΊΠ°ΠΊ выраТаСтся Microsoft: «ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти для быстрого доступа ΠΊ Π½ΠΈΠΌ. Когда ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ снова, прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· кэша вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· пСрвоисточника». — ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² прилоТСниях .NET framework

Π’ ΠΌΠΎΠ΅ΠΉ собствСнной Π³ΠΎΠ»ΠΎΠ²Π΅ я всСгда Π²ΠΈΠΆΡƒ это ΠΊΠ°ΠΊ Π²Π΅Ρ‰ΡŒ, которая Π»Π΅ΠΆΠΈΡ‚ Ρƒ вас Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅, ΠΏΠΎΠΊΠ° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ попросит Π΅Π΅ снова, Π° Π²Ρ‹ Ρ‚Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ΄Ρ‚ΠΈ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ своСй повсСднСвной Тизнью, ΠΏΠΎΠΊΠ° эта «Π²Π΅Ρ‰ΡŒ» ΠΆΠΈΠ²Π΅Ρ‚ Ρƒ вас Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° снова Π½Π΅ понадобится.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:

  • Π£Π»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ (Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊ сильно Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ источник).
  • ΠœΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ доступными, ΠΊΠΎΠ³Π΄Π° источник нСдоступСн.
  • «ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нСчасто ΠΈ Π΄ΠΎΡ€ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ» — ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² памяти Π² asp.net core

ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ лошадСй

Если Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ, Π½Π΅ всС Ρ‚Π°ΠΊ Ρ€Π°Π΄ΡƒΠΆΠ½ΠΎ ΠΈ Ρ€ΠΎΠ·ΠΎΠ²ΠΎ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ здСсь прСдставлСно. ВсСгда ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚ Π½Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π½Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ «Π·Π°Π²ΠΈΡΠ΅Π»ΠΎ ΠΎΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…»; ΠΈ это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ расхоТдСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΈ исходным, особСнно Ссли Π΄Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ часто ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ кэшС Π² памяти, слСдуСт ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ большС Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ Π² памяти, Ρ‚Π΅ΠΌ Π½ΠΈΠΆΠ΅ становится ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΠ±Ρ€Π°Π·Π½ΠΎ говоря, Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ слоТнСС Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π½Π°Π±ΠΈΡ‚Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€ΠΌΠ°Π½Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ наши ΡˆΠΊΠ°Ρ„Ρ‹, — всС Ρ€Π°Π²Π½ΠΎ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π° Π²Ρ‹ΠΏΠ°Π΄Π΅Ρ‚. Π’ΠΎ ΠΆΠ΅ самоС происходит ΠΈ с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠ°ΡΡ‚ΡŒ. Если ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ эту ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² качСствС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° для нашСй Π‘Π”, Ρ‚ΠΎ ΠΌΡ‹ окаТСмся Π² ΠΌΠΈΡ€Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π’ΠΈΠΏΡ‹ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² памяти (ΠΈΠ»ΠΈ Π² процСссС) (Кэш хранится Π² памяти Π²Π΅Π±-сСрвСра, ΠΎΡ‡Π΅Π½ΡŒ прост Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ).
  • РаспрСдСлСнноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (кэш раздСляСтся ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими сСрвСрами).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ этой ссылкС.

РСшСниС ΠΎ Π²Ρ‹Π±ΠΎΡ€Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сводится ΠΊ ситуации, Π³Π΄Π΅ ΠΌΡ‹ рассматриваСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ частоту Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ обращаСмся. МоТСм Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· источника, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°, Ссли Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ согласованности ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя источниками?

МоС Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅

Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ†Π΅Π»ΠΎΠΌ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π»Π΅Π³Ρ‡Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² памяти. Π­Ρ‚ΠΎ учитывая вСсьма вСроятный исход, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано минимальноС ΠΈ прСдсказуСмоС количСство запросов.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² памяти Π² .NET?

  1. УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚ nuget «Microsoft.Extensions.Caching.Memory
  2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MemoryCache с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ доступа options (Ρ‚.Π΅. MemoryCacheOptions).
  3. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ»ΠΈ установка:
if (!memoryCache.TryGetValue("cachedThingIdOrName", out List<int> data)) 
{
    data = memoryCache.Set("cachedThingIdOrName", await GetLargeDatabaseList(), new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromSeconds(10)); 
} 

return data; 
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌ Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого:

  • ΠŸΡ€ΠΈ запускС Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: services.AddMemoryCache().
  • Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² любом конструкторС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ IMemoryCache ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован

Как ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Redis (локальная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°)

  • ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ docker для получСния/размСщСния послСднСго ΠΎΠ±Ρ€Π°Π·Π° Redis.
  • ПослС запуска Redis Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ microsoft.extensions.caching.stackexchangeredis.
  • Нам Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Stackexchange.Redis.
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ConfigureServices ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ AddStackExchangeRedisCache со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ выраТСния:
      • Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ строку ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ /ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ установлСнному Redis.
      • Π­Ρ‚ΠΎ просто ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано для прСдотвращСния любой ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ вставкС значСния с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Redis ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… экзСмпляров ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ†Π΅Π»ΠΎΠΌ, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ вСроятным, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Π½Ρ‹. Π­Ρ‚ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ установлСно Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого прилоТСния.
    • Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ IDistributedCache Π² конструктор ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всСгда Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ истСчСния срока дСйствия, ΠΈΠ½Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Π΅ останутся Π² кэшС навсСгда. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AbsoluteExpirationRelativeToNow ΠΈΠ»ΠΈ AbsoluteExpiration ΠΈΠ»ΠΈ SlidingExpiration.

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ, увидимся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ πŸ™Œ

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ
Procodings.ru
Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ