Read-Through Cache
Ця стаття не має інтервікі-посилань. |
Read-Through Cache — шаблон проєктування для оптимізації використання кешу.
Проблема
ред.Аплікація застосовує кеш для оптимізації повторного доступу до даних. Однак дані час від часу оновлюються. Необхідно забезпечити спосіб підтримувати максимально актуальні дані в кеші.
Вирішення
ред.Створюємо сервіс обов'язком якого буде кешування. Він знає про розташування даних та оновлює кеш при потребі.
Переваги та недоліки
ред.Переваги
ред.- забезпечує часткову консистенцію даних при оптимізованому доступі
- забезпечує непередбачувану потребу в ресурсах. Дані поміщаються в кеш на вимогу
- система може працювати при несправності кешу. В такому випадку дані беруться зі сховища
- забезпечує збереження статичних даних. Кеш-сервіс реалізовує стратегії кешування в залежності від вимоги
Недоліки
ред.- не забезпечує повну консистенцію даних. Дані можуть бути оновлені, стороннім сервісом в той час як кеш міститиме застарілу інформацію
- нормалізовані дані. Аплікації потрібно провести додаткові операції над даними, щоб привести їх до потрібного формату
Опис
ред.- Аплікація читаємо дані лише з кешу.
- Кеш-провайдер забезпечує дані та їх валідність.
public Data GetUserData()
{
return _cache.GetData(DataType.Users);
}
class MyCache
{
public List<RequestedData> _cachedData;
public GetData(DataType dataType)
{
if (_cachedData.HasCache(dataType))
{
_cachedData.AddMissingKey(dataType);
return null;
}
return _cachedData.GetData(dataType);
}
private LoadMissingCache()
{
new Thread(() => {
_cachedData.Where(d => d.IsMissing).ForEach(d => _dataBase.Load(d));
});
}
}
Див. також
ред.Джерела
ред.- What is Caching [Архівовано 22 червня 2020 у Wayback Machine.]