Junior — Middle
Jakie podejścia lub narzędzia stosowałeś do implementacji buforowania danych?
sobes.tech AI
Odpowiedź od AI
Do przechowywania danych w pamięci podręcznej w C# często stosuję kilka podejść:
-
MemoryCache z przestrzeni nazw
System.Runtime.Caching— do lokalnej pamięci podręcznej w aplikacji. Pozwala ustawić czas życia pamięci podręcznej, priorytety itp. -
IMemoryCache i IDistributedCache z ASP.NET Core — do cache'owania w aplikacjach webowych. IMemoryCache to cache lokalny, IDistrubutedCache to cache rozproszony (np. Redis).
-
Zewnętrzne systemy cache, takie jak Redis czy Memcached, do skalowalnego i rozproszonego cache'owania.
Przykład użycia MemoryCache:
using System.Runtime.Caching;
var cache = MemoryCache.Default;
string cacheKey = "user_123";
var user = cache.Get(cacheKey) as User;
if (user == null)
{
user = GetUserFromDatabase(123); // metoda pobierania z bazy danych
cache.Set(cacheKey, user, DateTimeOffset.Now.AddMinutes(10));
}
// używamy user
Taki sposób zmniejsza liczbę odwołań do bazy danych i zwiększa wydajność.