Redis

WBOY
WBOYOriginal
2024-08-10 20:42:33569Durchsuche

Redis

Redis ist eine NOSQL-Datenbank, in der Daten in Schlüssel-Wert-Paaren gespeichert werden.
Redis speichert Daten im Hauptspeicher, was bedeutet, dass es schnell, aber flüchtig ist, im Gegensatz zu Datenbanksystemen wie PostgreSQL, die Daten auf der Festplatte speichern.

Überblick

In einer Anwendung mit einem Server und einer Datenbank führt der Zugriff auf Informationen in der Datenbank zu Latenz.

Schlüsselwertdatenbanken wie Redis werden oft vor diesen Datenbanken gespeichert und Zugriffsvorgänge erfolgen in zwei Schritten:

  1. Wenn sich die Informationen im Cache befinden, Cache-Treffer, ruft die Anwendung die Informationen von Redis ab und sendet sie an den Client
  2. Wenn nicht, Cache-Fehler, entnimmt die Anwendung die Informationen aus der Datenbank, sendet sie an den Client und speichert sie im Cache.

Mit diesen beiden Schritten und angesichts der Tatsache, dass der Hauptspeicher eine geringere Latenz als die Festplatte aufweist, können wir sagen, dass Redis zum Speichern und Zugreifen auf häufige, aktuelle Daten und teure Vorgänge verwendet werden kann, wodurch Anwendungen 10 bis 50-mal schneller werden.

Es ist daher eine Tatsache, dass Redis (oder Redis-ähnliche Datenbanken) unverzichtbar ist, wenn Sie überhaupt eine Anwendung erstellen wollen, die in Zukunft skalierbar sein soll.


Fragen

  1. Ist Redis Open Source?: Ja, Redis ist Open Source mit einer besonderen Art von Lizenz, aber es gibt Alternativen wie KeyDB von Snapchat und Memcached, die Open Source sind. KeyDB ist ein Fork von Redis, kann aber derzeit nur unter Linux ausgeführt werden.

  2. Unterstützt Redis Windows?: Nein, Redis unterstützt Windows nicht, aber Sie können WSL/Ubuntu installieren und Redis mit
    installieren

sudo apt install redis
  1. Ich verwende WSL. Warum funktioniert der Redis-Server nicht auf meinem System?: Wenn Sie auf WSL laufen, können Sie Redis-Server mit ausführen
redis-server --port 6000

wobei 6000 der Port auf Ihrem lokalen Server ist, auf dem Sie es ausführen möchten. (d. h. 127.0.0.1:6000).

Die meisten Probleme sind darauf zurückzuführen, dass der Standardport, den der Redis-Server verwendet, bereits verwendet wird

  1. Gibt es Client-Bibliotheken für Redis?: Eigentlich ja. Sie können sie auf der Redis-Website finden oder selbst eine erstellen.

Redis installieren

Unter Linux ist die Installation von Redis so einfach wie

sudo apt install redis

oderauf dem Mac:

brew install redis

Redis ausführen

Sie benötigen zwei Instanzen Ihres Terminals auf

auf dem ersten, der Ihren Server ausführt

redis-server -port <portnumber>
</portnumber>

und auf der zweiten, um Ihren Client auszuführen

redis-cli

Beim Erstellen einer Web-App müssen Sie den Client nicht ausführen aber der Server muss ausgeführt werden

Redis-Konzepte

Es gibt drei Hauptkonzepte in Redis, die Sie verstehen sollten oder 4

  1. Schlüssel-Wert-Paare
  2. Listen
  3. Sets
  4. Hashes

Alle anderen Datenstrukturen sind hauptsächlich eine erweiterte Implementierung der ersten

Mit Liste meinte ich Array und nicht verknüpfte Liste und so nennt Redis es.


Schlüssel-Wert-Paare

Schlüssel-Wert-Paare sind in den meisten Programmiersprachen eine gängige Datenstruktur.

  1. In Python heißt es Wörterbücher oder kurz Dikt

  2. In Javascript heißt es Maps

  3. In C# heißt es Dictionaries

Es gibt 6 Hauptoperationen für Schlüssel-Wert-Paare in Redis

Operations Explanations Examples Further Explanation
SET Creates a key-value pair SET name John Sets key to map to value
GET Gets value for key GET name This returns John
DEL Deletes the key value pair DEL name This removesthe key value pair name from the database
EXISTS Checks if a key exists in the redis database EXISTS name returns 1 or 0 corresponding to True or False
FLUSHALL Clears the entire cache FLUSHALL more or less like DROP TABLE in postgres
KEYS * Returns all the keys in the database KEYS *

Es gibt auch zeitbasierte Operationen. Bei zeitbasierten Vorgängen befindet sich der Schlüssel nur für eine festgelegte Zeitspanne im Cache. Nach Ablauf der Zeit löscht der Cache den Schlüssel.

Es gibt zwei hauptsächliche zeitbasierte Vorgänge

Operations Explanations Examples Further Explanation
EXPIRE Expires a key after being defined EXPIRE name 10 Deletes the key-value name after 10s .The key must be defined with SET before calling EXPIRE . A common alternative is;
SETEX Expires a key upon definition SETEX age 30 15 Sets the key age to value 30 and thereafter deleted the key-value pair after 15s
TTL Time To Live TTL age Returns the time remaining before deletion of the age key

Der Blog wird jetzt zu lang, ich werde über Listen, Sets, Hashmaps und auch mögliche Interviewfragen zu Redis in einem anderen Blog.

Wenn Sie Fragen haben, kommentieren Sie diese bitte unten. Ich werde mein Bestes geben, um sie zu beantworten ⭐. Viel Spaß beim Codieren

Das obige ist der detaillierte Inhalt vonRedis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn