Read-Through Cacheшаблон проєктування для оптимізації використання кешу.

Проблема

ред.

Аплікація застосовує кеш для оптимізації повторного доступу до даних. Однак дані час від часу оновлюються. Необхідно забезпечити спосіб підтримувати максимально актуальні дані в кеші.

Вирішення

ред.

Створюємо сервіс обов'язком якого буде кешування. Він знає про розташування даних та оновлює кеш при потребі.

Переваги та недоліки

ред.

Переваги

ред.
  • забезпечує часткову консистенцію даних при оптимізованому доступі
  • забезпечує непередбачувану потребу в ресурсах. Дані поміщаються в кеш на вимогу
  • система може працювати при несправності кешу. В такому випадку дані беруться зі сховища
  • забезпечує збереження статичних даних. Кеш-сервіс реалізовує стратегії кешування в залежності від вимоги

Недоліки

ред.
  • не забезпечує повну консистенцію даних. Дані можуть бути оновлені, стороннім сервісом в той час як кеш міститиме застарілу інформацію
  • нормалізовані дані. Аплікації потрібно провести додаткові операції над даними, щоб привести їх до потрібного формату

Опис

ред.
 
Робота патерну read-through сache
  1. Читаємо дані з кешу.
  2. Кеш-провайдер забезпечує дані та їх валідність.
public Data GetData()
{
	return _cache.GetOrAdd(_database.GetData);
}

Див. також

ред.

Джерела

ред.