Read-Through Cache

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Проблема[ред. | ред. код]

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

Вирішення[ред. | ред. код]

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

Переваги та недоліки[ред. | ред. код]

Переваги[ред. | ред. код]

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

Недоліки[ред. | ред. код]

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

Опис[ред. | ред. код]

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

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]