Back to questions
Middle+
5
IMemoryCache — что это и когда использовать?
Companies where asked
Gravilink
Answer from AI
sobes.tech AI
IMemoryCache — это интерфейс в .NET, предоставляющий механизм кэширования данных в памяти приложения. Он позволяет временно хранить объекты для быстрого доступа без необходимости повторного вычисления или загрузки из более медленных источников (например, базы данных или внешних сервисов).
Когда использовать IMemoryCache:
- Для кэширования часто запрашиваемых, но редко изменяющихся данных.
- Для уменьшения нагрузки на базу данных или внешние API.
- Когда важна высокая скорость доступа к данным.
- В сценариях, где данные могут быть потеряны при перезапуске приложения (т.е. кэш не должен быть долговременным).
Пример использования:
public class ProductService
{
private readonly IMemoryCache _cache;
public ProductService(IMemoryCache cache)
{
_cache = cache;
}
public Product GetProduct(int id)
{
return _cache.GetOrCreate(id, entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10);
return LoadProductFromDatabase(id);
});
}
private Product LoadProductFromDatabase(int id)
{
// Имитация загрузки из БД
return new Product { Id = id, Name = "Sample" };
}
}
Таким образом, IMemoryCache подходит для быстрого, локального кэширования в пределах одного экземпляра приложения.