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

Проблема

ред.

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

Вирішення

ред.

Читаємо дані із кешу. При зміні даних у сховищі, асинхронно оновлюємо кеш.

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

ред.

Переваги

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

Недоліки

ред.
  • нормалізовані дані. Аплікації потрібно провести додаткові операції над даними, щоб привести їх до потрібного формату

Опис

ред.
 
Робота патерну update-back
  1. Читаємо дані з кешу.
  2. Кеш-провайдер забезпечує дані та їх валідність.
  3. Зберігаємо дані у сховище.
  4. При зміні даних асинхронно оновлюємо кеш.
public Data GetData()
{
	return _cache.GetOrAdd(_database.GetData);
}

public void UpdateData(Data data)
{
	return _database.UpdateData(data);
}
class Database
{
	public void UpdateData(Data data)
	{
		return _queue.EnqueueUpdatedData(Data data);
	}
}
class Queue
{
	public void UpdateData(Data data)
	{
		_cache.UpdateData(data);
	}
}

Див. також

ред.

Джерела

ред.