Redis: Unterschied zwischen den Versionen

Aus KGS-Wiki
K (typos & formatting)
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Redis|Redis (REmote DIctionary Server)]] ist eine In-Memory-Datenbank mit einer einfachen [[Schlüssel-Werte-Datenstruktur]] (englisch ''key value store'') und gehört zur Familie der [[NoSQL]]-[[Datenbank|Datenbanken]] (ist also nicht relational). Redis ist [[Open Source]] welches bedeutet, dass jeder zugriff drauf haben kann und ihn ebenso bearbeiten kann. Redis ist der verbreitetste Schlüssel-Werte-Speicher. Der große Vorteil von Redis ist, dass es schneller ist als [[Relation|relationale]] Datenbanken wie z. B. [[SQL|MySQL]].  Jedoch eignet er sich eher weniger für komplexe Datenstrukturen. Redis wird ebenso als Cache, Message Broker und Warteschlange verwendet. Redis bietet Reaktionszeiten von unter einer Millisekunde und kann so Millionen von Anforderungen für Echtzeitanwendungen in den Bereichen Gaming, Ad-Tech, Finanzdienstleistungen, Gesundheitswesen und IoT verarbeiten.
{{Dieser Artikel|1=beschreibt das Datenbanksystem Redis. ''<span lang="la" dir="ltr">Redis</span>'' ist aber auch eine Form von {{Link-la|redire|37}}}}
 
[[Redis|Redis (''REmote DIctionary Server'')]] ist eine In-Memory-Datenbank mit einer einfachen [[Schlüssel-Wert-Datenstruktur]] (englisch ''key value store'') und gehört zur Familie der [[NoSQL]]-[[Datenbank|Datenbanken]] (ist also nicht relational). Redis ist [[Open Source]] welches bedeutet, dass jeder Zugriff drauf haben kann und ihn ebenso bearbeiten kann. Redis ist der verbreitetste Schlüssel-Werte-Speicher. Der große Vorteil von Redis ist, dass es schneller ist als [[Relation|relationale]] Datenbanken wie z. B. [[SQL|MySQL]].  Jedoch eignet er sich eher weniger für komplexe Datenstrukturen. Redis wird ebenso als Cache, Message Broker und Warteschlange verwendet. Redis bietet Reaktionszeiten von unter einer Millisekunde und kann so Millionen von Anforderungen für Echtzeitanwendungen in den Bereichen Gaming, Ad-Tech, Finanzdienstleistungen, Gesundheitswesen und [[Internet of Things|IoT]] verarbeiten.


== Wer, wann und warum? ==
== Wer, wann und warum? ==
[[Datei:Image2.png|mini|Salvatore Sanfilippo]]
[[Datei:Image2.png|mini|Salvatore Sanfilippo auf der RedisConf17<ref>https://www.youtube.com/watch?v=Wzy8dIjsY6Y</ref>]]
Der Entwickler von Redis ist Salvatore Sanfilippo im Jahr 2009 am 10 April. Das Redis-Projekt begann, als Salvatore Sanfilippo,  der ursprüngliche Entwickler von Redis, versuchte, die Skalierbarkeit seines italienischen Startups zu verbessern, indem er einen Echtzeit-Weblog-Analysator entwickelte. Nachdem Probleme bei der Skalierung einiger Arten von Workloads mit herkömmlichen Datenbanksystemen entstanden, begann Sanfilippo 2009 mit der Entwicklung eines Prototyps einer ersten [[Proof of Concept|Proof-of-Concept-Version]] von Redis in der Programmiersprache [[Tcl]].  Später übersetzte Sanfilippo diesen Prototyp in die [[C (Programmiersprache)|C]]-Sprache und implementierte den ersten Datentyp, die Liste. Nach einigen Wochen erfolgreicher interner Nutzung des Projekts entschied sich Sanfilippo, es als Open Source zu veröffentlichen.
Der Entwickler von Redis ist Salvatore Sanfilippo im Jahr 2009 am 10 April. Das Redis-Projekt begann, als Salvatore Sanfilippo,  der ursprüngliche Entwickler von Redis, versuchte, die Skalierbarkeit seines italienischen Startups zu verbessern, indem er einen Echtzeit-Weblog-Analysator entwickelte. Nachdem Probleme bei der Skalierung einiger Arten von Workloads mit herkömmlichen Datenbanksystemen entstanden, begann Sanfilippo 2009 mit der Entwicklung eines Prototyps einer ersten [[Proof of Concept|Proof-of-Concept-Version]] von Redis in der Programmiersprache [[Tcl]]. Später übersetzte Sanfilippo diesen Prototyp in die [[C (Programmiersprache)|C]]-Sprache und implementierte den ersten [[Datentyp]], die [[Liste]]. Nach einigen Wochen erfolgreicher interner Nutzung des Projekts entschied sich Sanfilippo, es als Open Source zu veröffentlichen.


== Wie funktioniert Redis? ==
== Wie funktioniert Redis? ==


=== Strings ===
=== Strings ===
Mit hilfe des <code>set</code>-Befehls kann man einen [[String]] erstellen.
Mit Hilfe des <code>set</code>-Befehls kann man einen [[String (Datentyp)|String]] erstellen.


<code>127.0.0.1:6397> set foo "Hi"</code>
127.0.0.1:6397> set foo "Hi"
 
<code>127.0.0.1:6397> set value 1</code>
127.0.0.1:6397> set value 1


Ruft man die Einträge <code>foo</code> und <code>value</code> nun mit <code>get</code> auf, werden die entsprechenden Werte angezeigt.
Ruft man die Einträge <code>foo</code> und <code>value</code> nun mit <code>get</code> auf, werden die entsprechenden Werte angezeigt.
  <code>127.0.0.1:6397> get foo
  127.0.0.1:6397> get foo
  "Hi"
  "Hi"
  127.0.0.1:6397> get value
  127.0.0.1:6397> get value
  "1"</code>
  "1"
Um einen Eintrag zu löschen, verwendet man den <code>del</code>-Befehl.
Um einen Eintrag zu löschen, verwendet man den <code>del</code>-Befehl.
  <code>127.0.0.1:6397> del foo
  127.0.0.1:6397> del foo
  (integer) 1
  (integer) 1
  127.0.0.1:6397> get foo
  127.0.0.1:6397> get foo
  (nil)</code>
  (nil)
Wer nicht viele Einträge mit einer Extrazeile Code anlegen möchte, kann die erweiterte Funktion <code>mset</code> verwenden. Um die Werte von mehreren Einträgen gleichzeitig abzurufen, existiert parallel <code>mget</code>.
Wer nicht viele Einträge mit einer Extrazeile Code anlegen möchte, kann die erweiterte Funktion <code>mset</code> verwenden. Um die Werte von mehreren Einträgen gleichzeitig abzurufen, existiert parallel <code>mget</code>.
  <code>127.0.0.1:6397> mset foo1 "Hi1" foo2 "Hi2" foo3 "Hi3"
  127.0.0.1:6397> mset foo1 "Hi1" foo2 "Hi2" foo3 "Hi3"
  OK
  OK
  127.0.0.1:6397> mget foo1 foo2 foo3
  127.0.0.1:6397> mget foo1 foo2 foo3
  1) "Hi1"
  1) "Hi1"
  2) "Hi2"
  2) "Hi2"
  3) "Hi3"</code>
  3) "Hi3"


=== Lists ===
 
===Lists===
Mit Redis kann man aber auch andere Datentypen verwenden. Bei der Arbeit mit der Datenbank sind z. B. [[Liste|Listen]] und [[Menge|Sets]] beliebt. Beides sind Ansammlungen von Werten. Während Sets allerdings unsortiert sind, sind die Werte in Listen durchnummeriert. Man kann in Listen Einträge hinzufügen, abfragen und wieder löschen.
Mit Redis kann man aber auch andere Datentypen verwenden. Bei der Arbeit mit der Datenbank sind z. B. [[Liste|Listen]] und [[Menge|Sets]] beliebt. Beides sind Ansammlungen von Werten. Während Sets allerdings unsortiert sind, sind die Werte in Listen durchnummeriert. Man kann in Listen Einträge hinzufügen, abfragen und wieder löschen.
  <code>127.0.0.1:6397> lpush mylist foo
  127.0.0.1:6397> lpush mylist foo
  (integer) 1
  (integer) 1
  127.0.0.1:6397> lpush mylist Hi
  127.0.0.1:6397> lpush mylist Hi
Zeile 51: Zeile 54:
  127.0.0.1:6397> lrange mylist 0 10
  127.0.0.1:6397> lrange mylist 0 10
  1) "test"
  1) "test"
  2) "Hi"</code>
  2) "Hi"
In diesem Beispiel haben wir zunächst zwei Elemente in eine Liste eingefügt (<code>lpush</code>) und uns diese anzeigen lassen. Bei dem Befehl <code>lrange</code> gibt man an, welcher Bereich (hier 0 bis 10) wiedergegeben werden soll, wobei man auch negative Zahlen verwenden kann. Anschließend haben wir mit <code>linsert</code> einen weiteren Wert vor einen bestehenden eingefügt (auch after wäre hier möglich) und damit die Nummerierung verändert. Der Befehl <code>lrem</code> kann Einträge mit einem spezifischen Wert aus der Liste löschen.
In diesem Beispiel haben wir zunächst zwei Elemente in eine Liste eingefügt (<code>lpush</code>) und uns diese anzeigen lassen. Bei dem Befehl <code>lrange</code> gibt man an, welcher Bereich (hier 0 bis 10) wiedergegeben werden soll, wobei man auch negative Zahlen verwenden kann. Anschließend haben wir mit <code>linsert</code> einen weiteren Wert vor einen bestehenden eingefügt (auch after wäre hier möglich) und damit die Nummerierung verändert. Der Befehl <code>lrem</code> kann Einträge mit einem spezifischen Wert aus der Liste löschen.


=== Sets ===
===Sets===
Für Sets kennt Redis andere Befehle, die aber ähnliche Ergebnisse liefern:
Für Sets kennt Redis andere Befehle, die aber ähnliche Ergebnisse liefern:
  <code>127.0.0.1:6397> sadd myset "foo"
  127.0.0.1:6397> sadd myset "foo"
  (integer) 1
  (integer) 1
  127.0.0.1:6397> sadd myset "Hi"
  127.0.0.1:6397> sadd myset "Hi"
Zeile 68: Zeile 71:
  (integer) 1
  (integer) 1
  127.0.0.1:6397> smembers myset
  127.0.0.1:6397> smembers myset
  1) "foo"</code>
  1) "foo"
Mit <code>sadd</code> lassen sich auch mehrere Elemente gleichzeitig in das Set aufnehmen, wenn man diese im Kommando nacheinander einfügt. Um sich das Set anzeigen zu lassen, reicht der Befehl <code>smembers</code> und der Name des gewünschten Sets. Über den Befehl <code>sismember</code> kann man zudem nach einem bestimmten Eintrag suchen. Analog zur Liste kann man mit <code>srem</code> einzelne Einträge löschen.
Mit <code>sadd</code> lassen sich auch mehrere Elemente gleichzeitig in das Set aufnehmen, wenn man diese im Kommando nacheinander einfügt. Um sich das Set anzeigen zu lassen, reicht der Befehl <code>smembers</code> und der Name des gewünschten Sets. Über den Befehl <code>sismember</code> kann man zudem nach einem bestimmten Eintrag suchen. Analog zur Liste kann man mit <code>srem</code> einzelne Einträge löschen.


Redis gibt Nutzern aber auch die Möglichkeit, Sets in einem sortierten Format zu verwenden.
Redis gibt Nutzern aber auch die Möglichkeit, Sets in einem sortierten Format zu verwenden.
  <code>127.0.0.1:6397> zadd mysortedset 1 "foo"
  127.0.0.1:6397> zadd mysortedset 1 "foo"
  (integer) 1
  (integer) 1
  127.0.0.1:6397> zadd mysortedset 2 "Hi"
  127.0.0.1:6397> zadd mysortedset 2 "Hi"
Zeile 81: Zeile 84:
  1) "foo"
  1) "foo"
  2) "Hi"
  2) "Hi"
  3) "fooHi"</code>
  3) "fooHi"
Zum Hinzufügen von Elementen verwendet man bei dieser Variante den Befehl <code>zadd</code> und einen Score. Während die Werte selbst nicht mehrfach auftreten können, darf man beim Score mehrfach die gleiche Zahl angeben. Der Score ist also keine direkte Nummerierung innerhalb des Sets, sondern eine Gewichtung. Alle Einträge mit dem Score 2 kommen nach den Elementen mit dem Score 1. Anzeigen lassen kann man sich alle oder nur ausgewählte Einträge mit <code>zrange</code>.
Zum Hinzufügen von Elementen verwendet man bei dieser Variante den Befehl <code>zadd</code> und einen Score. Während die Werte selbst nicht mehrfach auftreten können, darf man beim Score mehrfach die gleiche Zahl angeben. Der Score ist also keine direkte Nummerierung innerhalb des Sets, sondern eine Gewichtung. Alle Einträge mit dem Score 2 kommen nach den Elementen mit dem Score 1. Anzeigen lassen kann man sich alle oder nur ausgewählte Einträge mit <code>zrange</code>.


== Die Vorteile von Redis ==
==Die Vorteile von Redis==


=== Leistung ===
===Leistung===
Alle Redis-Daten befinden sich im [[Arbeitsspeicher]], was niedrige Latenzzeiten und einen hohen Datendurchsatz ermöglicht.
Alle Redis-Daten befinden sich im [[Arbeitsspeicher]], was niedrige Latenzzeiten und einen hohen Datendurchsatz ermöglicht.


=== Flexible Datenstrukturen ===
===Flexible Datenstrukturen===
* Zeichenfolgen – Text- oder Binärdaten mit einer Größe von bis zu 512 MB
* Zeichenfolgen – Text- oder Binärdaten mit einer Größe von bis zu 512 MB
* Listen – mehrere Zeichenfolgen in der Reihenfolge ihrer Hinzufügung
*Listen – mehrere Zeichenfolgen in der Reihenfolge ihrer Hinzufügung
* Sätze – mehrere unsortierte Zeichenfolgen, die sich mit anderen Satzarten überschneiden, vereinen oder voneinander unterscheiden können
*Sätze – mehrere unsortierte Zeichenfolgen, die sich mit anderen Satzarten überschneiden, vereinen oder voneinander unterscheiden können
* Sortierte Sets – nach Wert aufgelistete Sets
*Sortierte Sets – nach Wert aufgelistete Sets
* [[Hashes]] – eine Datenstruktur zum Speichern einer Liste mit Feldern und Werten
*[[Hashes]] – eine Datenstruktur zum Speichern einer Liste mit Feldern und Werten
* Bitmuster – ein Datentyp, der Vorgänge auf Bitebene ermöglicht
*Bitmuster – ein Datentyp, der Vorgänge auf Bitebene ermöglicht
* HyperLogLogs - eine probabilistische Datenstruktur zur Schätzung der eindeutigen Elemente in einem Datensatz
*HyperLogLogs - eine probabilistische Datenstruktur zur Schätzung der eindeutigen Elemente in einem Datensatz
* Streams - eine Protokolldatenstruktur-Nachrichtenwarteschlange
*Streams - eine Protokolldatenstruktur-Nachrichtenwarteschlange
* Geospatial - ein auf Längen- und Breitengraden basierender Eintrag für Karten, „in der Nähe“
*Geospatial - ein auf Längen- und Breitengraden basierender Eintrag für Karten, „in der Nähe“
* JSON – ein verschachteltes, halbstrukturiertes Objekt mit benannten Werten, das Zahlen, Zeichenfolgen, Boolesche Werte, Arrays und andere Objekte unterstützt
*[[JSON]] – ein verschachteltes, halbstrukturiertes [[Objekt (Informatik)|Objekt]] mit benannten Werten, das Zahlen, Zeichenfolgen, Boolesche Werte, Arrays und andere Objekte unterstützt


=== Einfachheit und Benutzerfreundlichkeit ===
===Einfachheit und Benutzerfreundlichkeit===
Redis ermöglicht, traditionelle und  komplexe Codes mit weniger und einfacheren Zeilen zu schreiben. Mit Redis schreibt man  weniger Codezeilen, um Daten in den Anwendungen zu speichern, darauf zuzugreifen und sie zu nutzen. Der Unterschied besteht darin, dass Entwickler, die Redis verwenden, eine einfache Befehlsstruktur verwenden können, im Gegensatz zu den Abfragesprachen herkömmlicher Datenbanken.  Sie können zum Beispiel die Redis-Hash-Datenstruktur verwenden, um Daten mit nur einer Zeile Code in einen Datenspeicher zu verschieben. Redis-Entwicklern stehen mehr als einhundert Open-Source-Clients zur Verfügung.  Zu den unterstützten Sprachen gehören Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go und viele andere.
Redis ermöglicht, traditionelle und  komplexe Codes mit weniger und einfacheren Zeilen zu schreiben. Mit Redis schreibt man  weniger Codezeilen, um Daten in den Anwendungen zu speichern, darauf zuzugreifen und sie zu nutzen. Der Unterschied besteht darin, dass Entwickler, die Redis verwenden, eine einfache Befehlsstruktur verwenden können, im Gegensatz zu den Abfragesprachen herkömmlicher Datenbanken.  Sie können zum Beispiel die Redis-Hash-Datenstruktur verwenden, um Daten mit nur einer Zeile Code in einen Datenspeicher zu verschieben. Redis-Entwicklern stehen mehr als einhundert Open-Source-Clients zur Verfügung.  Zu den unterstützten Sprachen gehören Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go und viele andere.


== Open Source ==
== Open Source==
Die Open-Source-Software kann meistens kostenlos genutzt werden, wessen Quelltext öffentlich und von Dritten eingesehen, geändert und genutzt werden kann.
Die Open-Source-Software kann meistens kostenlos genutzt werden, wessen Quelltext öffentlich und von Dritten eingesehen, geändert und genutzt werden kann.


== Weblinks ==
==Weblinks==
 
*[[wikipedia:Redis|Wikipedia: Redis {{Flagge|GB}}]]
*[https://www.ionos.de/digitalguide/hosting/hosting-technik/redis-tutorial/ Tutorial zum Redis-Hosting {{Flagge|DE}}]
 
==Quellen==
 
<references />


* https://en.wikipedia.org/wiki/Redis
{{Navigationsleiste Datenbanken}}
* https://www.ionos.de/digitalguide/hosting/hosting-technik/redis-tutorial/
[[Kategorie:Datenbanken]]

Aktuelle Version vom 24. Mai 2024, 13:54 Uhr

Redis (REmote DIctionary Server) ist eine In-Memory-Datenbank mit einer einfachen Schlüssel-Wert-Datenstruktur (englisch key value store) und gehört zur Familie der NoSQL-Datenbanken (ist also nicht relational). Redis ist Open Source welches bedeutet, dass jeder Zugriff drauf haben kann und ihn ebenso bearbeiten kann. Redis ist der verbreitetste Schlüssel-Werte-Speicher. Der große Vorteil von Redis ist, dass es schneller ist als relationale Datenbanken wie z. B. MySQL. Jedoch eignet er sich eher weniger für komplexe Datenstrukturen. Redis wird ebenso als Cache, Message Broker und Warteschlange verwendet. Redis bietet Reaktionszeiten von unter einer Millisekunde und kann so Millionen von Anforderungen für Echtzeitanwendungen in den Bereichen Gaming, Ad-Tech, Finanzdienstleistungen, Gesundheitswesen und IoT verarbeiten.

Wer, wann und warum?

Salvatore Sanfilippo auf der RedisConf17[1]

Der Entwickler von Redis ist Salvatore Sanfilippo im Jahr 2009 am 10 April. Das Redis-Projekt begann, als Salvatore Sanfilippo, der ursprüngliche Entwickler von Redis, versuchte, die Skalierbarkeit seines italienischen Startups zu verbessern, indem er einen Echtzeit-Weblog-Analysator entwickelte. Nachdem Probleme bei der Skalierung einiger Arten von Workloads mit herkömmlichen Datenbanksystemen entstanden, begann Sanfilippo 2009 mit der Entwicklung eines Prototyps einer ersten Proof-of-Concept-Version von Redis in der Programmiersprache Tcl. Später übersetzte Sanfilippo diesen Prototyp in die C-Sprache und implementierte den ersten Datentyp, die Liste. Nach einigen Wochen erfolgreicher interner Nutzung des Projekts entschied sich Sanfilippo, es als Open Source zu veröffentlichen.

Wie funktioniert Redis?

Strings

Mit Hilfe des set-Befehls kann man einen String erstellen.

127.0.0.1:6397> set foo "Hi"

127.0.0.1:6397> set value 1

Ruft man die Einträge foo und value nun mit get auf, werden die entsprechenden Werte angezeigt.

127.0.0.1:6397> get foo
"Hi"
127.0.0.1:6397> get value
"1"

Um einen Eintrag zu löschen, verwendet man den del-Befehl.

127.0.0.1:6397> del foo
(integer) 1
127.0.0.1:6397> get foo
(nil)

Wer nicht viele Einträge mit einer Extrazeile Code anlegen möchte, kann die erweiterte Funktion mset verwenden. Um die Werte von mehreren Einträgen gleichzeitig abzurufen, existiert parallel mget.

127.0.0.1:6397> mset foo1 "Hi1" foo2 "Hi2" foo3 "Hi3"
OK
127.0.0.1:6397> mget foo1 foo2 foo3
1) "Hi1"
2) "Hi2"
3) "Hi3"


Lists

Mit Redis kann man aber auch andere Datentypen verwenden. Bei der Arbeit mit der Datenbank sind z. B. Listen und Sets beliebt. Beides sind Ansammlungen von Werten. Während Sets allerdings unsortiert sind, sind die Werte in Listen durchnummeriert. Man kann in Listen Einträge hinzufügen, abfragen und wieder löschen.

127.0.0.1:6397> lpush mylist foo
(integer) 1
127.0.0.1:6397> lpush mylist Hi
(integer) 2
127.0.0.1:6397> lrange mylist 0 10
1) "foo"
2) "Hi"
127.0.0.1:6397> linsert mylist before "Hi" "test"
(integer) 3
127.0.0.1:6397> lrange mylist 0 10
1) "foo"
2) "test"
3) "Hi"
127.0.0.1:6397> lrem mylist 0 foo
(integer) 1
127.0.0.1:6397> lrange mylist 0 10
1) "test"
2) "Hi"

In diesem Beispiel haben wir zunächst zwei Elemente in eine Liste eingefügt (lpush) und uns diese anzeigen lassen. Bei dem Befehl lrange gibt man an, welcher Bereich (hier 0 bis 10) wiedergegeben werden soll, wobei man auch negative Zahlen verwenden kann. Anschließend haben wir mit linsert einen weiteren Wert vor einen bestehenden eingefügt (auch after wäre hier möglich) und damit die Nummerierung verändert. Der Befehl lrem kann Einträge mit einem spezifischen Wert aus der Liste löschen.

Sets

Für Sets kennt Redis andere Befehle, die aber ähnliche Ergebnisse liefern:

127.0.0.1:6397> sadd myset "foo"
(integer) 1
127.0.0.1:6397> sadd myset "Hi"
(integer) 1
127.0.0.1:6397> smembers myset
1) "Hi"
2) "foo"
127.0.0.1:6397> sismember myset "Hi"
(integer) 1
127.0.0.1:6397> srem myset "Hi"
(integer) 1
127.0.0.1:6397> smembers myset
1) "foo"

Mit sadd lassen sich auch mehrere Elemente gleichzeitig in das Set aufnehmen, wenn man diese im Kommando nacheinander einfügt. Um sich das Set anzeigen zu lassen, reicht der Befehl smembers und der Name des gewünschten Sets. Über den Befehl sismember kann man zudem nach einem bestimmten Eintrag suchen. Analog zur Liste kann man mit srem einzelne Einträge löschen.

Redis gibt Nutzern aber auch die Möglichkeit, Sets in einem sortierten Format zu verwenden.

127.0.0.1:6397> zadd mysortedset 1 "foo"
(integer) 1
127.0.0.1:6397> zadd mysortedset 2 "Hi"
(integer) 1
127.0.0.1:6397> zadd mysortedset 2 "fooHi"
(integer) 1
127.0.0.1:6397> zrange mysortedset 0 10
1) "foo"
2) "Hi"
3) "fooHi"

Zum Hinzufügen von Elementen verwendet man bei dieser Variante den Befehl zadd und einen Score. Während die Werte selbst nicht mehrfach auftreten können, darf man beim Score mehrfach die gleiche Zahl angeben. Der Score ist also keine direkte Nummerierung innerhalb des Sets, sondern eine Gewichtung. Alle Einträge mit dem Score 2 kommen nach den Elementen mit dem Score 1. Anzeigen lassen kann man sich alle oder nur ausgewählte Einträge mit zrange.

Die Vorteile von Redis

Leistung

Alle Redis-Daten befinden sich im Arbeitsspeicher, was niedrige Latenzzeiten und einen hohen Datendurchsatz ermöglicht.

Flexible Datenstrukturen

  • Zeichenfolgen – Text- oder Binärdaten mit einer Größe von bis zu 512 MB
  • Listen – mehrere Zeichenfolgen in der Reihenfolge ihrer Hinzufügung
  • Sätze – mehrere unsortierte Zeichenfolgen, die sich mit anderen Satzarten überschneiden, vereinen oder voneinander unterscheiden können
  • Sortierte Sets – nach Wert aufgelistete Sets
  • Hashes – eine Datenstruktur zum Speichern einer Liste mit Feldern und Werten
  • Bitmuster – ein Datentyp, der Vorgänge auf Bitebene ermöglicht
  • HyperLogLogs - eine probabilistische Datenstruktur zur Schätzung der eindeutigen Elemente in einem Datensatz
  • Streams - eine Protokolldatenstruktur-Nachrichtenwarteschlange
  • Geospatial - ein auf Längen- und Breitengraden basierender Eintrag für Karten, „in der Nähe“
  • JSON – ein verschachteltes, halbstrukturiertes Objekt mit benannten Werten, das Zahlen, Zeichenfolgen, Boolesche Werte, Arrays und andere Objekte unterstützt

Einfachheit und Benutzerfreundlichkeit

Redis ermöglicht, traditionelle und komplexe Codes mit weniger und einfacheren Zeilen zu schreiben. Mit Redis schreibt man weniger Codezeilen, um Daten in den Anwendungen zu speichern, darauf zuzugreifen und sie zu nutzen. Der Unterschied besteht darin, dass Entwickler, die Redis verwenden, eine einfache Befehlsstruktur verwenden können, im Gegensatz zu den Abfragesprachen herkömmlicher Datenbanken. Sie können zum Beispiel die Redis-Hash-Datenstruktur verwenden, um Daten mit nur einer Zeile Code in einen Datenspeicher zu verschieben. Redis-Entwicklern stehen mehr als einhundert Open-Source-Clients zur Verfügung. Zu den unterstützten Sprachen gehören Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go und viele andere.

Open Source

Die Open-Source-Software kann meistens kostenlos genutzt werden, wessen Quelltext öffentlich und von Dritten eingesehen, geändert und genutzt werden kann.

Weblinks

Quellen