Read-Through Cache
Ця стаття не має інтервікі-посилань. Ви можете допомогти проєкту, знайшовши та додавши їх до відповідного елементу Вікіданих. |
Read-Through Cache — шаблон проєктування для оптимізації використання кешу.
Проблема
Аплікація застосовує кеш для оптимізації повторного доступу до даних. Однак дані час від часу оновлюються. Необхідно забезпечити спосіб підтримувати максимально актуальні дані в кеші.
Вирішення
Створюємо сервіс обов'язком якого буде кешування. Він знає про розташування даних та оновлює кеш при потребі.
Переваги та недоліки
Переваги
- забезпечує часткову консистенцію даних при оптимізованому доступі
- забезпечує непередбачувану потребу в ресурсах. Дані поміщаються в кеш на вимогу
- система може працювати при несправності кешу. В такому випадку дані беруться зі сховища
- забезпечує збереження статичних даних. Кеш-сервіс реалізовує стратегії кешування в залежності від вимоги
Недоліки
- не забезпечує повну консистенцію даних. Дані можуть бути оновлені, стороннім сервісом в той час як кеш міститиме застарілу інформацію
- нормалізовані дані. Аплікації потрібно провести додаткові операції над даними, щоб привести їх до потрібного формату
Опис
![](http://upload.wikimedia.org/wikipedia/uk/c/c4/%D0%94%D1%96%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0_%D1%80%D0%BE%D0%B1%D0%B8%D1%82%D0%B8_%D0%BF%D0%B0%D1%82%D0%B5%D1%80%D0%BD%D1%83_Read-Through_Cache.png)
- Читаємо дані з кешу.
- Кеш-провайдер забезпечує дані та їх валідність.
public Data GetData() { return _cache.GetOrAdd(_database.GetData); }
Див. також
Джерела
- What is Caching [Архівовано 22 червня 2020 у Wayback Machine.]
|