ΠΠΌΠ΅ΡΡ Π²Π΅ΡΠΈ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ»ΠΎΠΊ — ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ πΆβοΈπΆβοΈπ½π».
Π£Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ ΠΎΡ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΊΡΠΈΠΊΠ½ΡΡΡ Π² ΡΠΊΡΠ°Π½ «Cache me outside… how boww daah», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π²Π°ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. Π― ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ, ΠΈΡ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΡ ΡΠΎΡΠΊΠ° Π·ΡΠ΅Π½ΠΈΡ, ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² .NET.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
- ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
- ΠΡΠΈΠ΄Π΅ΡΠΆΠΈΡΠ΅ Π»ΠΎΡΠ°Π΄Π΅ΠΉ
- Π’ΠΈΠΏΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- ΠΠΎΠ΅ Π»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅
- ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² .NET?
- ΠΠ°ΠΊ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redis (Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°)
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅, Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ΄ΡΠΈ ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ (ΠΎΡΠΊΡΠ΄Π° Π²Ρ ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΉΡΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ (Π³Π΄Π΅ Π²Ρ ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ) ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ ΡΠ°ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π΅Π½ΡΠ³ΠΈ.
…ΠΠ»ΠΈ, ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Microsoft: «ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. ΠΠΎΠ³Π΄Π° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ½ΠΎΠ²Π°, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°». — ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .NET framework
Π ΠΌΠΎΠ΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Π΅ Ρ Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠΆΡ ΡΡΠΎ ΠΊΠ°ΠΊ Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π»Π΅ΠΆΠΈΡ Ρ Π²Π°Ρ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅, ΠΏΠΎΠΊΠ° ΠΊΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π΅Π΅ ΡΠ½ΠΎΠ²Π°, Π° Π²Ρ ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ΄ΡΠΈ ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠ° «Π²Π΅ΡΡ» ΠΆΠΈΠ²Π΅Ρ Ρ Π²Π°Ρ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° ΡΠ½ΠΎΠ²Π° Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
- Π£Π»ΡΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ (Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π±ΠΈΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ).
- ΠΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½.
- «ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π΅ΡΠ°ΡΡΠΎ ΠΈ Π΄ΠΎΡΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ» — ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² asp.net core
ΠΡΠΈΠ΄Π΅ΡΠΆΠΈΡΠ΅ Π»ΠΎΡΠ°Π΄Π΅ΠΉ
ΠΡΠ»ΠΈ Π±ΡΡΡ ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½ΡΠΌ, Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΊ ΡΠ°Π΄ΡΠΆΠ½ΠΎ ΠΈ ΡΠΎΠ·ΠΎΠ²ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ. ΠΡΠ΅Π³Π΄Π° ΡΠΎΠ²Π΅ΡΡΡΡ Π½Π΅ ΡΡΡΠΎΠΈΡΡ ΠΈ Π½Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ «Π·Π°Π²ΠΈΡΠ΅Π»ΠΎ ΠΎΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ »; ΠΈ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠ°ΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΊΡΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΌ Π½ΠΈΠΆΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ±ΡΠ°Π·Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π½Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Ρ ΠΎΠ΄ΠΈΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π½Π°Π±ΠΈΡΡΠΌΠΈ ΠΊΠ°ΡΠΌΠ°Π½Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ Π½Π°ΡΠΈ ΡΠΊΠ°ΡΡ, — Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π° Π²ΡΠΏΠ°Π΄Π΅Ρ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈ Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠΏΠ°ΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΠ, ΡΠΎ ΠΌΡ ΠΎΠΊΠ°ΠΆΠ΅ΠΌΡΡ Π² ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
Π’ΠΈΠΏΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ (ΠΈΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅) (ΠΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ).
- Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΡΠ±ΠΎΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π³Π΄Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ°ΡΡΠΎΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ. ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°, Π΅ΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ?
ΠΠΎΠ΅ Π»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅
ΠΠ»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π»ΠΎΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΈ Π»Π΅Π³ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΡΡΠΈΡΡΠ²Π°Ρ Π²Π΅ΡΡΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΡΠΉ ΠΈΡΡ ΠΎΠ΄, ΡΡΠΎ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² .NET?
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ nuget «Microsoft.Extensions.Caching.Memory
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ MemoryCache Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ° options (Ρ.Π΅. MemoryCacheOptions).
- ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π²ΡΠ±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
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
.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΈΡΡ, ΡΠ²ΠΈΠ΄ΠΈΠΌΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ π