Vor ca. zwei Jahren durfte ich einen Impusvortrag zum Thema Redis halten.
Den Inhalt der Folien kopiere ich hierher.
Durch welches Problem bin ich auf Redis gestoßen?
• Migration einer Anwendung von SAP Application Server mit drei Application Server Instanzen auf zwei Apache Tomcat Server
• Session Data ging durch Wechsel der Tomcat Server verloren
• Lösung: Sticky Session [im LoadBalancer]
• Alternative Lösung: Persistieren den Session in der Application Datenbank
• • zB in PROJECT_XYZ umgesetzt
• • Problem bei der aktuellen Application: DB hat bereits Performanceprobleme
• Erweiterte alternative Lösung:
• • Speichern der Session Daten in einer eigenen Datenbank
• • -> Fragestellung: Gibt es für so ein Scenario spezialisierte Datenbanken?
[Anmerkung aus 2023: Es gibt beim Tomcat ein Clustering/Session Replication Feature, das hatten wir aber aus Gründen nicht in Erwägung gezogen]
Was ist Redis
Der Name Redis steht für Remote Dictionary Server.
In-Memory-Datenbank
• Alle Daten werden direkt im Arbeitsspeicher gespeichert
• Dadurch sehr kurze Zugriffszeiten
• Auch bei großen, unstrukturierten Datenmengen
Key-Value-Store
• Hohe Performanz
• Dank einfacher Struktur leicht skalierbar
• Zu jedem Eintrag wird ein Schlüssel erstellt, über den die Informationen dann wieder aufgerufen werden können.
Redis ist über Module erweiterbar.
Mitbewerber der Key-Value-Datenbanken: Amazon DynamoDB
Redis
Typische Datenstrukturen von Redis
• Strings
• Lists
• Sets
• Hashes
Weitere Optionen
• Inkrementelle Vergrößerung oder Verkleinerung
• Lebenszeit von Werten setzen
• Mit append dem hinterlegten Wert einen weiteren hinzufügen
• Einträge mit rename umbenennen
Redis Clients
Es gibt eine große Anzahl von Clients für Redis:
Redis
Redis Homepage: https://redis.io/
Online Spielwiese: https://try.redis.io/
Alle verfügbaren Kommandos: https://redis.io/commands
Ein Redis Client für Java ist Redisson. Code Example: https://redisson.org/redis-java-client-with-code-example.html
One reply on “Redis”
[…] ich mich vor ca. zwei Jahren mal mit Redis auseinander gesetzt hatte, hat es sich jetzt ergeben, ein Beispielsetup in der Praxis […]