sql >> Database >  >> NoSQL >> Redis

Applicatiecache vs. hibernate cache op het tweede niveau, welke te gebruiken?

Het hangt echt af van uw aanvraagmodel en de verkeerseisen.

  1. Het gebruik van Redis/Hazelcast levert mogelijk de beste prestaties op, omdat er geen retourvlucht naar DB meer is, maar u krijgt uiteindelijk genormaliseerde gegevens in DB en een gedenormaliseerde kopie in uw cache, waardoor uw cache-update onder druk komt te staan beleid. U krijgt dus de beste prestaties ten koste van het implementeren van de cache-update wanneer de persistente gegevens veranderen.
  2. Het gebruik van cache op het tweede niveau is gemakkelijker in te stellen, maar slaat alleen entiteiten op id op. Er is ook een querycache, waarin id's worden opgeslagen die door een bepaalde query worden geretourneerd. Dus de cache van het 2e niveau is een proces in twee stappen dat u moet verfijnen om de beste prestaties te krijgen. Wanneer u projectiequery's uitvoert, zal de objectcache van het 2e niveau u niet helpen, omdat deze alleen werkt bij het laden van entiteiten. Het belangrijkste voordeel van cache op het tweede niveau is dat het gemakkelijker is om het synchroon te houden wanneer gegevens veranderen, vooral als al uw gegevens in de slaapstand worden bewaard.

Dus, als je ultieme prestaties nodig hebt en je vindt het niet erg om je cache-updatelogica te implementeren die zorgt voor een minimale uiteindelijke consistentie, kies dan voor een externe cache.

Als u alleen entiteiten in de cache hoeft te plaatsen (die meestal niet zo vaak veranderen) en u deze meestal opent via het laden van entiteiten in de slaapstand, dan kan de cache van het 2e niveau u helpen.




  1. Een inleiding tot MongoDB Zone Basics

  2. Spring data mongodb - De 'cursor'-optie is vereist

  3. Hoe spring boot web-app te configureren met redis met Docker

  4. Een item uit de array verwijderen met het MongoDB-Java-stuurprogramma