Propozycja na jakiś szybki słownik/cache danych

0

Witam,
mam zagadnienie teoretyczne, które chciałbym zaimplementować w C# (core).

Otóż jest sobie serwis (np. restowy) - z którego mają zostać pobierane cyklicznie miliony 'rekordów', w którym 'rekordy' potrafią się powtarzać, w jednym cyklu pobierania, natomiast w kolejnym cyklu na pewno taka sytuacja występuje.
Chciałbym zastosować taki mechanizm, który będzie bardzo sprawnie obłsugiwał wyłapywanie unikatowych rekordów odrzucając te powtarzające, działając i obsługując kilka cyklów pod rząd.
Czyli z kilku ogromnych cyklów potrzebne są unikaty.

Każdy rekord ma jakiś swój klucz identyfikujący, np. marka samochodu (tylko przyklad). Po jakimś czasie, po przetworzeniu owy cache/słownik byłby czyszczony, aby zwolnić pamięć operacyjną.

Słownik wyglądały tak np. Dictionary<string, string>, gdzie klucz to np. Marka samochodu, a wartość to cały JSON z opisem czynności na samochodzie.

Jak to zrobić najwydaniej w c# oraz jak uzyskać mechanizm czyszczenia zawartości słownika 'na zawołanie' (moze expirationTime takiego cache'a etc).

3

Klasa MemoryCache powinna spełnić twoje oczekiwania.

0

Takich rzeczy się nie robi Redisem?

1
WeiXiao napisał(a):

Takich rzeczy się nie robi Redisem?

Redis jest super jak masz kilka instancji aplikacji i chcesz mieć wspólny cache dla nich lub chcesz go mieć na osobnym serwerze. Wtedy masz też tą zaletę, że nie tracisz cache po restarcie aplikacji. W prostych przypadkach MemoryCache jest wystarczające.

0

Możesz też wykorzystać DistributedMemoryCache, którego API (IDistributedCache) jest AFAIK identyczne z Redisem i w razie potrzeby można się szybko "przepiąć".

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