Wdrażam pamięć podręczną w bibliotece klas, której używam w aplikacji asp.net.Prawidłowe wdrożenie pamięci podręcznej w bibliotece klas do użytku w aplikacji asp.net
Utworzono mój obiekt pamięci podręcznej jako wzorzec singleton ze statyczną metodą aktualizacji pamięci podręcznej, która tak naprawdę właśnie ładuje zmienną składową/właściwość z kolekcją danych, które wymagają buforowania (uzyskałem pewną logikę blokowania). Pomyślałem, że to dobry sposób, aby przejść ponieważ mogę tylko dostęp do moich danych poprzez wywołanie
MyCacheObject.Instance.MyDataCollection
Tworzę nowy obiekt pamięci podręcznej do przechowywania całkiem sporą ilość danych, podzielona przez jakiś klucz. Mówię tylko, że tworzę nową pamięć podręczną, ale ta nie załaduje wszystkich danych naraz, ale raczej zapisze kolekcję dla każdego klucza, do którego dostęp uzyskałem.
MyOtherCacheObject.Instance.MyOtherDataCollection(indexkey)
Tym razem pojawiło się pytanie o zbieranie śmieci. Ponieważ przechowuję ogromną ilość danych, czy nie byłoby to marnotrawstwem, gdyby nagle nastąpiło to? Ponieważ jest to pojedynczy wzorzec, nic nie gwarantuje, że dane pozostaną w pamięci podręcznej.
Moje pytanie brzmi: jaka jest najlepsza praktyka w implementowaniu pamięci podręcznej, aby poradzić sobie z tą sytuacją? Naprawdę nie podoba mi się ogromne, kompleksowe rozwiązanie tego problemu i wiem, że w System.Web jest buforowanie, ale wygląda na to, że jest trochę "wyłączone", ponieważ jest to po prostu biblioteka klasy, czy jak myślisz?
Podoba mi się to, do czego dążysz (nawet, jeśli chciałbym przejść długą drogę, aby uniknąć IoC). Wychowujesz dobre pomysły, z którymi mogę jednak korzystać. Dzięki –
Możesz również dodać zmienną zabezpieczającą i wykonać blokadę tej zmiennej, jeśli zestaw zostanie wykonany. Moje przeczucie mówi, że może to zapobiec niektórym problemom z gwintowaniem. –