Cache használata
A cache használatával megspórolhatóak azok az adatbázis lekérdezések, fájlrendszer elérések, háttérendszer hívások, amelyekben ugyanazért az adathalmazért mennénk el többször az adatbázishoz, fájlrendszerhez vagy háttérendszerhez.
Ez oly módon valósul meg, hogy az első adatbázis hívás után az adathalmaz (egy egyedi kulccsal) eltárolódik a memóriában, és a következő hívásnál már nem az adatbázisból, hanem a cacheből lesz lekérve ez az adathalmaz.
Ennek megvalósításához segítségünkre van, hogy a Spring alapértelmezetten támogatja cache-elést, ami ráadásul a Spring AOP-nek köszönhetően annotációkkal vezérelhető. A Spring-es megoldás mellett cache managerként a Redis-t használjuk.
1. Cache konfigurálása
1.1 @Cacheable annotáció
A cachelni kívánt metódusokat a @Cachable annotációval tudjuk megjelölni.
Példa
A fenti kód azt jelenti, hogy getPrivilegesByRole metódus eredményét, a metódus paraméterként átadott roleString-et
kulcsként használva, cache-eljük el az auth_privileges nevű tárba.
Amennyiben a későbbiekben, egy már az auth_privileges-ben eltárolt roleString kulccsal hívjuk meg a getPrivilegesByRole metódust,
úgy azt a cache-ből fogjuk kiszolgálni.
1.2 @CacheEvict annotáció
Természetesen az is konfigurálható, hogy bizonyos metódusok (update/delete) meghívása esetén törlődjön a cache (evict),
mert például ezen metódusok módosítják az adatbázis tartalmát. Ehhez használható a @CacheEvict annotáció.
Spring cache használata
A Spring cache használatáról részletesebben itt olvashatsz.