LoadingCache der Guava-Bibliothek nutzen

Für Java existiert eine Bibliothek mit dem Namen Guava. Diese, von Google entwickelte, Bibliothek bietet gewisse Basisfunktionalitäten, welche vom Java-Framework nicht abgedeckt werden. Eine dieser Funktionalitäten ist der LoadingCache. Bei diesem handelt es sich um einen Cache, welcher dazu genutzt werden kann die Ergebnisse zeitintensiver Operationen zwischenzuspeichern. Daneben verfügt er über die Informationen wie er die entsprechenden Daten bezogen werden. Um Guava zu nutzen muss die Bibliothek z.B. mittels Maven eingebunden werden. Dazu muss die pom.xml-Datei um eine Abhängigkeit erweitert werden:

<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>27.0-jre</version>
</dependency>

Anschließend kann Guava in dem betreffenden Projekt genutzt werden. In diesem Beispiel soll der Cache dazu dienen Anfragen an einen Webservice zu cachen. Der Webservice liefert Daten zurück, welche in einem Objekt vom Typ BookData gespeichert werden:

class BookData {

	public final String title;
	public final String description;
	public final double price;

	public BookData(String title, String description, double price) {
		this.title = title;
		this.description = description;
		this.price = price;
	}
}

Innerhalb der Anwendung übernimmt die Methode getBookData die Aufgabe, diese Daten vom Webservice zu beziehen:

public BookData getBookData(String isbn) {
	return bookdataService.getData(isbn);
}

Der LoadingCache von Guava ist technisch betrachtet eine Map. Bei der Initialisierung ist dies ersichtlich:

LoadingCache<String, BookData> books = CacheBuilder.newBuilder()
		.maximumSize(1000)
		.expireAfterWrite(7, TimeUnit.DAYS)
		.build(
				new CacheLoader<String, BookData>() {
					public BookData load(String isbn) {
						return getBookData(isbn);
					}
				});

Beim Anlegen des Cache können unterschiedliche Parameter wie die maximale Größe, die Zeit ab der ein Eintrag erneuert wird und der CacheLoader definiert werden. Der CacheLoader implementiert die Methode load, welche die entsprechenden Daten vom Webservice bezieht. Nachdem der LoadingCache definiert ist, kann die Map normal genutzt werden:

BookData bookData = books.get("9783736889842");

Im Hintergrund wird der Wert, wenn vorhanden, aus dem Cache bezogen. Ist dies nicht der Fall wird stattdessen der CacheLoader genutzt, welcher in diesem Beispiel einen Request an den Webservice sendet und das Ergebnis wieder im Cache hinterlegt. Der LoadingCache selber beschränkt sich auf die Laufzeit der Applikation und wird nicht persistiert.

Cache des Safari-Browsers unter iOS löschen

Für ein paar Tests wollte ich im Safari unter iOS den Cache löschen und fand direkt in Safari keine offensichtliche Möglichkeit dies zu tun. Dies liegt daran dass die entsprechende Möglichkeit dies zu tun in den Einstellungen versteckt ist.

Die Einstellungen für Safari

Öffnet man die Einstellungen, so findet man dort den Punkt Safari und schließlich den Eintrag Verlauf und Websitedaten löschen. Damit wird allerdings nicht nur der Cache, sondern auch eventuell geöffnete Tabs und ähnliches gelöscht.

Gecachte Webseiten aufrufen

Im Internet gibt es eine Reihe von Diensten und Archiven, welche Snapshots von Webseiten speichern. Die bekanntesten dieser Dienste dürften Archive.org bzw. dessen Wayback-Machine und der Google Cache sein.

CachedView.com

CachedView.com

Ist man nun auf der Suche nach einer bestimmten Webseite, so kann man die einzelnen Caches natürlich einzeln abklappern. Eleganter funktioniert dies mit CachedView – dort gibt man die gesuchte URL ein und durchsucht damit gleichzeitig den Google Cache, das Webarchiv von Archive.org und den Coral Cache. Zu Finden ist CachedView unter cachedview.com.

Cachify

In meiner WordPress Plugin Reihe soll es heute um das Plugin Cachify gehen. Cache Plugins gibt es für WordPress wie Sand am mehr. Das Problem an den meisten dieser Plugins ist die schiere Fülle an Optionen und Möglichkeiten. Wenn man die falsche Option erwischt wird die Seite im schlimmsten Fall langsamer. So werfen viele Cache Plugins eher Sand in das Getriebe anstatt zu helfen.

Die übersichtlichen Cachify-Einstellungen

Die übersichtlichen Cachify-Einstellungen

Cachify hebt sich hier ab. Es funktioniert einfach. Der gewählte Ansatz für das Plugin ist “Keep it simple”. Für die Installation sind wenige Handgriffe nötig und schon kann der Cache ohne Probleme genutzt werden. Das Plugin stammt von Sergej Müller welcher unter anderem für das Plugin AntiSpamBee verantwortlich ist. Cachify kann auf der offiziellen Pluginseite bezogen oder über die WordPress Pluginverwaltung installiert werden. Auch eine umfangreiche Dokumentation für die Einrichtung wird auf dem Blog des Autor mitgeliefert. Wem das nicht reicht, der kann das zum Thema passende Buch/eBook auf den Seiten Autors erwerben.