Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Pamięć podręczna aplikacji vs. hibernacja pamięci podręcznej drugiego poziomu, której użyć?

To naprawdę zależy od modelu zapytań aplikacji i wymagań ruchu.

  1. Korzystanie z Redis/Hazelcast może zapewnić najlepszą wydajność, ponieważ nie będzie już żadnej podróży w obie strony do bazy danych, ale w efekcie będziesz mieć znormalizowane dane w bazie danych i zdenormalizowaną kopię w pamięci podręcznej, co będzie wywierać presję na aktualizację pamięci podręcznej polityki. Dzięki temu uzyskujesz najlepszą wydajność kosztem wdrożenia aktualizacji pamięci podręcznej za każdym razem, gdy utrwalone dane ulegną zmianie.
  2. Korzystanie z pamięci podręcznej drugiego poziomu jest łatwiejsze w konfiguracji, ale przechowuje tylko jednostki według identyfikatora. Istnieje również pamięć podręczna zapytań, przechowująca identyfikatory zwrócone przez dane zapytanie. Tak więc pamięć podręczna drugiego poziomu jest procesem dwuetapowym, który należy dostroić, aby uzyskać najlepszą wydajność. Podczas wykonywania zapytań projekcyjnych pamięć podręczna obiektów drugiego poziomu nie pomoże, ponieważ działa tylko przy ładowaniu jednostki. Główną zaletą pamięci podręcznej drugiego poziomu jest to, że łatwiej jest ją zsynchronizować przy każdej zmianie danych, zwłaszcza jeśli wszystkie dane są utrwalane przez hibernację.

Tak więc, jeśli potrzebujesz najwyższej wydajności i nie masz nic przeciwko zaimplementowaniu logiki aktualizacji pamięci podręcznej, która zapewnia minimalne ewentualne okno spójności, skorzystaj z zewnętrznej pamięci podręcznej.

Jeśli potrzebujesz tylko buforować encje (które zwykle nie zmieniają się tak często) i uzyskujesz do nich dostęp głównie poprzez ładowanie encji Hibernacja, pamięć podręczna drugiego poziomu może ci pomóc.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Indeksowanie przy użyciu posortowanych zestawów Redis

  2. Redis publikuj-subskrybuj:czy Redis gwarantuje dostarczenie wiadomości nawet przy ogromnym stresie?

  3. Rozważ ponowne sprawdzenie wpisów powyżej lub zdefiniowanie w konfiguracji elementu bean typu „org.springframework.data.redis.core.RedisTemplate”

  4. Jak korzystać z redis' „ZRZUT” i „PRZYWRACANIE” (offline)?

  5. Dzwonię do Redis zunionstore z Lua ze zmienną KEYS