In den meisten IT-Projekten werden re­la­tio­na­le Da­ten­ban­ken ein­ge­setzt. Egal, ob beim Webdesign oder bei der Software-Ent­wick­lung: Die auf Tabellen ba­sie­ren­den Da­ten­ban­ken liefern in den meisten Szenarien gute und stabile Er­geb­nis­se. Aber sind sie immer die perfekte Wahl? In den ver­gan­ge­nen Jahren kamen immer mehr neue Da­ten­bank­ty­pen auf den Markt, die sich durch ihre ganz eigenen Vorzüge aus­zeich­nen. So­ge­nann­te NoSQL-Da­ten­ban­ken sind für einige Projekte sehr emp­feh­lens­wert. Redis liefert eine solche Database. Wie funk­tio­niert der Da­ten­spei­cher und welche Vorteile bringt Redis?

Managed Database Services
Da­ten­ban­ken – Auf´s We­sent­li­che kon­zen­trie­ren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maß­ge­schnei­der­te Datenbank-Lösungen ganz auf Ihre Be­dürf­nis­se
  • Re­chen­zen­tren in Deutsch­land: Ihre Daten sind sicher

Redis-Da­ten­ban­ken erklärt

Der Name Redis steht für Remote Dic­tion­a­ry Server. Diese Art von Server eignet sich als schneller Da­ten­spei­cher. Redis bietet als Datenbank-Ma­nage­ment-System (DBMS) zugleich eine In-Memory-Datenbank und einen Key-Value-Store.

  • In-Memory-Datenbank: Bei solchen Da­ten­ban­ken speichert das DBMS alle Daten direkt im Ar­beits­spei­cher. Das sorgt für sehr kurze Zu­griffs­zei­ten – auch bei großen, un­struk­tu­rier­ten Da­ten­men­gen.
  • Key-Value-Store: Auch Schlüssel-Wert-Da­ten­ban­ken über­zeu­gen mit hoher Per­for­manz und lassen sich dank der einfachen Struktur leicht skalieren. Zu jedem Eintrag wird ein Schlüssel erstellt, über den die In­for­ma­ti­on dann wieder auf­ge­ru­fen werden kann.

Alle Daten liegen also bei einem Redis-Server nicht auf der Fest­plat­te, sondern im Ar­beits­spei­cher. Durch diese Ent­schei­dung ist Redis sowohl Cache als auch Speicher: Ob die In­for­ma­tio­nen dauerhaft in der Datenbank liegen oder nur kurz­zei­tig, macht für Redis keinen Un­ter­schied.

Jeder Eintrag in der Datenbank erhält einen Schlüssel. Über diese Schlüssel können Daten dann wieder ganz einfach abgerufen werden. Die Einträge sind also nicht un­ter­ein­an­der verknüpft und müssen daher auch nicht über mehrere Tabellen hinweg an­ge­for­dert werden. Die In­for­ma­tio­nen stehen direkt zur Verfügung.

Mit der Ablage im Ar­beits­spei­cher geht aber auch die Gefahr einher, bei einem Ser­ver­ab­sturz sämtliche Daten zu verlieren. Um dies zu ver­hin­dern, kann Redis entweder alle Daten re­gel­mä­ßig auf Backup-Fest­plat­te du­pli­zie­ren oder alle Befehle, die für eine Re­kon­struk­ti­on nötig sind, in eine Log-Datei speichern.

Die typische Da­ten­struk­tur von Redis sind Strings, also einfache Zei­chen­fol­gen. Auch die Schlüssel (der eine Teile des Key-Value-Stores) sind als String rea­li­siert. Das System kann aber auch mit weiteren Da­ten­struk­tu­ren umgehen:

  • Strings: eine Zei­chen­fol­ge mit einer Ma­xi­mal­grö­ße von 512 MB
  • Hashes: Eintrag mit mehreren Feldern
  • Lists: Sammlung aus Strings, die nach der Rei­hen­fol­ge der Ein­tra­gung sortiert ist
  • Sets: eine un­sor­tier­te Sammlung aus Strings
  • Sorted Sets: eine vom Nutzer sortierte Sammlung von Strings
  • Bitmaps: Sammlung an Ope­ra­tio­nen auf Bit-Ebene
  • Hy­per­Log­Logs: Schätzung auf Basis von ein­deu­ti­gen Werten
  • Streams: Liste von Strings oder komplexen Key-Value-Paaren

Da Redis Open Source ist, arbeiten viele Ent­wick­ler an Er­wei­te­run­gen für das DBMS. Diese Module erweitern die Funk­tio­na­li­tät der ansonsten sehr schlanken Datenbank und passen die Software für spe­zi­fi­sche Ein­satz­ge­bie­te an.

Fakt

Redis ist Open Source und kann von jedem kostenlos ein­ge­setzt werden. Der Haupt­spon­sor von Redis ist das Un­ter­neh­men Redis Labs. Dieses bietet kos­ten­pflich­ti­ge Cloud-Versionen der Software an.

Für welche An­wen­dungs­fel­der ist Redis am besten geeignet?

Das Stan­dard­sze­na­rio von Redis ist ein Cache. Hierfür verwendet bei­spiels­wei­se auch Twitter die Datenbank: Die eigene Timeline bei dem Nach­rich­ten­dienst wird bei­spiels­wei­se durch einen Redis-Cache rea­li­siert. Grund­sätz­lich besteht die Timeline aus einer Liste, die dank Redis schnell abgerufen werden kann und in­kre­men­tell er­wei­ter­bar ist.

Aber auch für andere Zwecke wird Redis ein­ge­setzt: Durch die hohe Zu­griffs­ge­schwin­dig­keit ist eine Redis-Datenbank bei­spiels­wei­se perfekt für Messaging-Dienste oder Chat-Rooms geeignet. Neue Einträge lassen sich in Echtzeit dar­stel­len. Auch Listen, die kurz­fris­tig geändert werden müssen, werden mit Redis umgesetzt.

Tipp

Sie sind von Redis überzeugt und möchten die Datenbank für Ihr Projekt einsetzen? In unserem einfachen Redis-Tutorial erfahren Sie mehr über die ersten Schritte.

Vor- und Nachteile von Redis

Redis ist immer dann eine gute Wahl, wenn einfache Daten schnell zur Verfügung stehen müssen. Durch die stan­dard­mä­ßi­ge Re­pli­ka­ti­on der Daten wird die Le­se­ge­schwin­dig­keit sogar noch erhöht: Daten können von un­ter­schied­li­chen Instanzen abgefragt werden. Auch die Ska­lie­rung klappt mit Redis sehr gut – sowohl ho­ri­zon­tal als auch vertikal. Sollte der Ar­beits­spei­cher des Redis-Servers nicht aus­rei­chen, hat die Software eine ein­ge­bau­te Virtual-Memory-Ver­wal­tung. Diese lagert Daten auf die Fest­plat­te aus. Redis selbst ist in C ge­schrie­ben. Es gibt aber Clients für fast jede Pro­gram­mier­spra­che.

Wenn man al­ler­dings mit komplexen Daten arbeitet, die auch ebenso um­fang­rei­che Ab­fra­ge­op­tio­nen benötigen, ist Redis nicht die richtige Wahl. Daten können innerhalb von einem Key-Value-Store prin­zi­pi­ell immer nur über ihre Schlüssel an­ge­spro­chen werden. Außerdem braucht Redis (ebenso wie andere In-Memory-Da­ten­ban­ken) extrem viel Ar­beits­spei­cher, was kost­spie­lig sein kann. Man muss zudem damit rechnen, mehr Speicher zur Verfügung zu stellen, als die Daten ei­gent­lich belegen.

Fazit

Immer dann, wenn Daten schnell ge­schrie­ben und abgefragt werden müssen, bietet Redis eine gute Al­ter­na­ti­ve zu klas­si­schen re­la­tio­na­len Da­ten­ban­ken. Ist man al­ler­dings nicht auf Ge­schwin­dig­keit an­ge­wie­sen und sucht eine Datenbank für kom­ple­xe­re Aufgaben, sollte man beim tra­di­tio­nel­len Ansatz bleiben.

Zum Hauptmenü