Redis

Redis ist eine In-Memory Datenbank

Im Bereich Datenbanken gibt es einige „NoSQL-Datenbanken“. Redis – die Abkürzung steht für Remote Dictionary Server – ist dafür ein typisches Beispiel, es ist den so geannten Key-Value-Stores zuzurechnen. Zahlreiche Datenbanken – wie Redis auch – lassen sich mittlerweile der wachsenden „NoSQL-Gruppe“ zuordnen. Obwohl die verfügbaren Systeme sich in ihren theoretischen Grundlagen unterscheiden, zielen alle auf ähnliche Projektanforderungen im Hinblick auf Skalierbarkeit, verteilte Datenhaltung und flexible Speichermodelle für Dateninhalte. NoSQL-Datenbanken wie Redis kann man in vier Gruppen einteilen: Auf der einen Seite Key-Value-Stores und spaltenorientierte Datenbanken, andererseites dokumentenorientierte Datenbanken und Graphendatenbanken.

Die einfachste Form stellen die Key-Value-Stores dar, die die zu speichernden Daten immer nur in Form eines Key-Value-Paars ablegen. Der Schlüssel verweist dabei auf einen Wert. Die Einfachheit, die sich im Prinzip nicht wesentlich von einer Ablage in Betriebssystemdateien unterscheidet und die seit vielen Jahren in Embedded-Datenbanken zur Verfügung steht, lässt sich nun auch über „stand alone“ NoSQL-Datenbanken einsetzen.

Möchte man die Anwendungsgebiete für Key-Value-Datenbanken wie Redis in Erfahrung bringen, orientiert man sich am besten direkt am Titel „Key-Value“. Wenn es um die Ablage und Abfrage von Daten in immer derselben Form geht – nämlich „Speichere einen Datensatz zu einer bestimmten ID“ beziehungsweise „Lese exakt diesen Datensatz zur jeweiligen ID“, ohne dass der Datensatz noch komplex mit anderen Daten verbunden werden soll — und die Anzahl solcher Operationen hoch werden kann, sollten Nutzer sich für Key-Value-Datenbanken entscheiden. Ein Beispiel ist die Sessionverwaltung in einem Websystem. Über einen Key hinterlegt man den aktuellen Zustand einer Websession und kann ihn dadurch bei späteren Zugriffen auslesen und überschreiben.

Redis eignet sich besonders für große Datenmengen

Die Einfachheit des Datenmodells erleichtert die Skalierbarkeit dieser Systeme, sodass das bei großen Datenmengen das Hauptargument für den Einsatz von Key-Value-Datenbanken ist.

Redis ist ein Open-Source-Projekt, das seit 2010 zusammen mit seinem „Erfinder“ Salvatore Sanfilippo im Hause VMware entwickelt wird. Redis ist eine in C implementierte „single-threaded“ In-Memory-Datenbank. Redis verfügt über Ähnlichkeit mit einem Memory-Caching-System Memcached, bietet aber mehr als Memcached, nämlich nicht allein die Speicherung von Strings, sondern auch komplexere Datentypen wie Listen, Mengen und Hashes. Als In-Memory-Datenbank hält Redis alle Daten im Hauptspeicher, der über Virtual Memory erweiterbar ist, in den sich dann seltener benutzte Value-Datensätze auslagern lassen.

Im Falle eines Serverabsturzes bedeutet eine solche Hauptspeicherablage die Gefahr eines Datenverlusts. Um die Gefahr zu minimieren, bietet Redis unterschiedliche Mechanismen zum Schutz an. Durch die Einfachheit des Datenmodells gehören Projekte mit komplexen Datenstrukturen eher nicht zur Redis-Zielgruppe. Stattdessen konzentrieren sich die Redis-Entwickler auf eine schnelle Verarbeitung einfach strukturierter Daten. Wer die Performance selber testen will, findet bei Redis Benchmark-Skripte, mit denen er die auf der Webseite beschriebenen Werte auf seiner eigenen Rechnerkonfiguration verifizieren kann. Redis hat noch eine weitere Besonderheit: In der Datenbank sind Schreib- in der Regel schneller als Leseoperationen.

Weitere Informationen zum Thema Redis gibt es auf der Website der Wikipedia Enzyklopädie https://de.wikipedia.org/wiki/Redis und auf der Website des Herstellers – allerdings in englischer Sprache http://redis.io/

Ruby on Rails

Ruby on Rails verwirklicht Web-Anwendungen schnell und effizient

Ruby on Rails ist ein Framework, mit dem dynamische Websites, die auf Datenbanken basieren, in relativ kurzer Zeit entwickelt werden können. Das Framework fokussiert den Zugriff auf die Datenbank und nimmt so dem Entwickler einen großen Teil der dafür erforderlichen Programmierarbeit ab.

Ruby on Rails ist keine eigenständige Sprache, sondern lediglich ein Framework, das aber auf der Skriptsprache Ruby basiert. Ruby und Ruby on Rails verstehen sich als Open Source Projekte. Das heißt: Sie stehen im Quelltext frei zur Verfügung.

Das Framework ist ideal geeignet für Web-2.0-Anwendungen mit Community-Funktionen wie Blogs, Rating und ähnlichen Anwendungen. Ruby on Rails ist gekennzeichnet durch eine Model-View-Controller-Architektur. Das bedeutet eine klare Trennung zwischen den Daten, deren Aufbereitung und deren Anzeige. Durch diese Aufteilung sind die entwickelten Webanwendungen leicht zu pflegen.

Ein Framework für dynamische Websites

Ruby on Rails hat sich zum Ziel gesetzt, dem Entwickler möglichs viel Arbeit zu ersparen, indem wenig Entwicklungstätigkeit redundant durchgeführt werden muss. Das heißt konkret: Sich wiederholender Code und sich wiederholende Arbeitsschritte werden im Framework vermieden. Geht das nicht, werden Mechanismen bereit gestellt, um der Redundanz zu begegnen. Außerdem wird für zu konfigurierende Aspekte ein Standardverhalten angenommen: Der Entwickler muss nur in Ausnahmefällen selbst konfigurieren. Auf diese Weise werden fehleranfällige Konfigurationen auf ein Minimum reduziert. Diese Prinzipien machen Ruby on Rails zu einem Framework, mit dem Web-Anwendungen besonders schnell und effizient realisiert werden können.

Weitere Informationen zum Thema Ruby on Rails finden Sie auf der Website der Wikipedia Enzyklopädie https://de.wikipedia.org/wiki/Ruby_on_Rails

oder auf der offiziellen Website von Rails http://rubyonrails.org/