Sobes.tech
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 подходит для быстрого, локального кэширования в пределах одного экземпляра приложения.