cache vs singleton

0

Cześć,
w celach wydajnościowych chcę, aby aplikacja część danych trzymała zawsze w pamięci (w bazie danych ma być tylko kopia tych danych). Jeśli user chce coś zmodyfikować z tych danych to zmiana zapisywana jest w bazie danych oraz jednocześnie w pamięci.
Moje pytanie jest: w jaki sposób przechowywać takie dane? Rozważam cache oraz obiekt singleton. Czy są jakieś znaczące różnice między tymi rozwiązaniami? Które rozwiązanie jest lepsze i dlaczego?
Z góry dziękuję za pomoc.

3

Nie napisałeś jaka wersja .Net więc piszę w ciemno. Użyj IMemoryCache opakowane w jakiś obiekt-serwis dla lepszego dostępu z logiki biznesowej- nie musi być singletonem, szczególnie jeśli potrzebujesz dostęp do obecnego kontekstu np. w celach logowania.

Pozwoli Ci to na lepszą kontrolę cache, bo będziesz mógł ustawić czas wygaśnięcia jeśli zajdzie taka potrzeba.

https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-5.0

0

Okey, dziękuję. A czy jest jakaś inna przewaga IMemoryCache nad zwykłym obiektem wrzuconym do Singletona - poza tym, że w cechu mogę ustawić okres życia obiektu?

2

Masz od ręki zagwarantowane thread safety, no i zapewne będzie to zrobione lepiej i szybciej niż pisanie własnych cachy.

0

okey, dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1