Entwicklung & Design

Die Grundlagen der Cache-Mechanismen: Caching in Ruby on Rails

Seite 2 / 7

Page-Caching eignet sich also vor allem für Seiten, deren Inhalt sich nicht abhängig vom eingeloggten Benutzer oder ähnlichen Dingen ändert. Sehr gute Kandidaten dafür sind zum Beispiel Hilfeseiten, die zwar von einem Redaktionsteam über die Applikation gepflegt werden (weshalb sie nicht als statische HTML-Seiten unter „public/“ abgelegt sind), aber für jeden Benutzer gleich angezeigt werden.

Cache-Inhalte löschen

Werden Cache-Inhalte angelegt, sollte es auch eine Möglichkeit geben, sie zu löschen, beziehungsweise den Cache zu invalidieren. Das kann zum Beispiel explizit geschehen, wenn nach einer Änderung an einer Seite durch folgende Zeilen der Cache invalide wird:

RUBY
def update
		[...]
	expire_page :controller => 'mein', :action => 'index'
	[...]
	end

Listing 2

Das Vorgehen ist allerdings meist nicht sinnvoll, da es die Cache-Funktionalität unnötigerweise an die beteiligten Controller koppelt. Üblicherweise hängt eine Invalidierung vielmehr mit den Modellen zusammen, das heißt sobald sich ein Modellobjekt ändert, das Daten für eine zwischengespeicherte Action bereitstellt, sollte der Cache gelöscht werden. Dehalb kann die Invalidierung von Caches über so genannte „Cache-Sweeper“ an Modelle gebunden werden.

Angenommen, über die oben genannte Action soll eine Liste von Büchern angezeigt werden. Es gäbe eine ActiveRecord-Klasse namens Book, und jedes Mal, wenn sich ein Buch ändert, dann würde der Cache invalide. Ein Sweeper (der üblicherweise unter „app/models/“ abgelegt wird) könnte folgendermaßen aussehen:

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.