Es stehen unterschiedliche Cache-Mechanismen auf unterschiedlichen architektonischen Ebenen zur Verfügung:
- PSR-6 Caching und Laufzeitcache
- Second Level Cache
- OPcache
FAQ zum Caching
Welche Bespiele für die Verwendung des Laufzeitcaches gibt es?
Der Laufzeitcache ist immer dann sinnvoll, wenn komplexe Methoden vielfach aufgerufen werden. Das kommt bspw. im Rollen-Konzept vor. Siehe bspw. \Brandbox\Framework\Security\Role\AuthorisationManager::isAuthorizedDataset
. Anwender die mit einer Rolle in der Anwendung unterwegs sind, müssen sehr häufig innerhalb eines Requests nach den Rechten eines Datensatzes fragen.
Wie kann ich den PSR-6 Cache debuggen?
Nutzen Sie dafür bspw. das Plugin Redis Helper.
Wie kann ich feststellen, welcher PSR-6 Cache Adapter gerade aktiv ist?
Öffnen Sie dazu Cache-Control im Adminbereich und prüfen Sie ob der jeweilige Adapter informationen liefert. Falls nicht, ist er nicht aktiv.
Welche Besonderheiten gibt es im Umgang mit dem Second-Level-Cache von Doctrine?
- Um die Performance von Logging-Tabellen zu schonen, ist es sinnvoll usage="READ_ONLY" zu verwenden. Damit ist es dann allerdings nicht mehr möglich den Datensatz zu überschreiben.
- Arbeitet man direkt mit dem Querybuild, muss man aktiv dafür sorgen, dass das Cache wieder geleert wird. Siehe o.g. Dokumentation (Stichwort: Evict)