Da ich jetzt schon öfter von Redis gehört und gelesen habe, habe ich es mal angeschaut. Die Kommunikation zwischen Bot und Webseite lief bisher über das Node.js net Modul, die Lösung gefiel mir allerdings nicht so wirklich und war nur temporär gedacht. Redis ist, einfach gesagt, eine In-Memory-Datenbank mit einer Schlüssel-Wert-Struktur (key - value). Durch den Umbau auf Redis werden für API-Requests nun alle benötigten Daten aus der MySQL Datenbank geholt und für eine bestimmte Zeit in die Redis Datenbank gehauen, so sind weitere Requests schneller und müssen nicht extra noch mal aus der Datenbank geholt werden, vorher mit einem selbst gebauten Runtime-Cache. Redis bietet auch die Möglichkeit, ein Wert nach einer bestimmten Zeit automatisch zu löschen ohne eine extra Abfrage ob die Zeit schon vorbei ist. Zusätzlich nutze ich jetzt für die Kommunikation zwischen Bot und Webseite, jetzt auch dem Discord-Bot, nun die Pub/Sub Funktionalität von Redis. Einfach gesagt abonniert ein Client ein Event (Subscribe) und ein anderer sendet an das Event die Daten (Publish), die Clients die das Event abonniert haben erhalten dann die Daten und können diese verarbeiten.
Zusätzlich zu dieser Änderung sind nun auch die ersten Einstellungen für die Streamer sichtbar. Streamer können nun folgende Einstellungen vornehmen:
- Auf der Streamer-Seite verstecken: Wenn aktiviert wird der Stream nicht auf der ChatAnalytics Webseite unter "Streamer" angezeigt.
- Auf der Startseite anzeigen: Wenn aktiviert kann der Kanal auf der Startseite landen (die Startseite rotiert regelmäßig die Streamer).
- Chat-Nachricht bei Aktualisierung: Der Bot schreibt in den jeweiligen Kanal eine Chat-Nachricht, wenn sich die Statistiken aktualisieren, optional auch mit oder ohne Link zu den Statistiken.
- Generierungsintervall der Statistiken (in Minuten): Mit dieser Einstellung lässt sich der Generierungsintervall umstellen, zwischen 15 Minuten und 24 Stunden ist jede Einstellung erlaubt. Mit ChatAnalytics 1 war wegen der