In der eigentlichen Entwicklungsarbeit verwenden wir normalerweise die Redis-Datenbank für Caching, verteilte Sperren/Nachrichtenwarteschlangen usw. Aber wir haben normalerweise die Frage: Warum werden nach dem Einrichten und Konfigurieren des Redis-Servers standardmäßig 16 Datenbanken erstellt?
Jetzt stellen wir Ihnen diese Frage vor.
1. Der Ursprung von 16 Datenbanken
redis ist ein wörterbuchstrukturierter Speicherserver. Eine Redis-Instanz stellt mehrere Wörterbücher zum Speichern von Daten bereit. Dies ähnelt der Art und Weise, wie mehrere Datenbanken in einer relationalen Datenbankinstanz erstellt werden können (wie in der Abbildung unten gezeigt), sodass jedes Wörterbuch als unabhängige Datenbank verstanden werden kann.
Redis unterstützt standardmäßig 16 Datenbanken. Sie können diesen Wert ändern, indem Sie die Datenbanken in der Redis-Konfigurationsdatei redis/redis.conf anpassen. Starten Sie Redis neu, um die Konfiguration abzuschließen.
Nachdem der Client eine Verbindung mit Redis hergestellt hat, wird standardmäßig Datenbank Nr. 0 ausgewählt. Sie können die Datenbank jedoch jederzeit mit dem Befehl „select“ ändern.
# 切换数据库操作:切换到1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> 127.0.0.1:6379[1]> # 切换到0 127.0.0.1:6379[1]> SELECT 0 OK 127.0.0.1:6379> # 从1号库中获取username 127.0.0.1:6379[1]> get username 。
(Lernvideo-Sharing: Redis-Video-Tutorial)
In tatsächlichen Projekten können Sie die Datenbank in Form einer Redis-Konfigurationsdatei angeben, wie in der Abbildung unten gezeigt
2. Richtig Redis verstehen „Datenbank“-Konzept
Da Redis keine benutzerdefinierten Datenbanknamen unterstützt, wird jede Datenbank mit einer Nummer benannt. Entwickler müssen die Korrespondenz zwischen den gespeicherten Daten und der Datenbank selbst aufzeichnen. Darüber hinaus unterstützt Redis nicht das Festlegen unterschiedlicher Zugriffskennwörter für jede Datenbank. Alle Clients können entweder auf alle Datenbanken zugreifen oder haben keine Berechtigung zum Zugriff auf alle Datenbanken. Um das „Datenbank“-Konzept von Redis richtig zu verstehen, müssen wir einen Befehl erwähnen:
Löschen Sie die Daten in allen Datenbanken in der Redis-Instanz
127.0.0.1:6379> FLUSH ALL
Das Löschen der Daten in einer Redis-Datenbank löscht keine anderen Bibliotheken Daten
127.0.0.1:6379> FLUSH db0
Dieser Befehl kann alle Datenbankdaten unter der Instanz löschen, was sich von der uns bekannten relationalen Datenbank unterscheidet. Oft werden mehrere Bibliotheken relationaler Datenbanken zum Speichern von Daten für verschiedene Anwendungen verwendet, und es gibt keine Möglichkeit, alle Bibliotheksdaten unter der Instanz gleichzeitig zu löschen. Für Redis ähneln diese Datenbanken eher Namespaces und eignen sich nicht zum Speichern von Daten aus verschiedenen Anwendungen. Beispielsweise können Sie Datenbank Nr. 0 zum Speichern von Daten in der Entwicklungsumgebung und Datenbank Nr. 1 zum Speichern von Daten in der Testumgebung verwenden. Es ist jedoch nicht geeignet, Datenbank Nr. 0 zum Speichern der Daten von Anwendung A und zu verwenden Verwenden Sie Datenbank Nr. 1, um die Daten von Anwendung B zu speichern. Verschiedene Umgebungen Zum Speichern von Daten sollten verschiedene Redis-Instanzen verwendet werden. Redis ist sehr leichtgewichtig. Eine leere Redis-Instanz belegt nur etwa 1 MB Speicher, sodass Sie sich keine Sorgen machen müssen, dass mehrere Redis-Instanzen viel zusätzlichen Speicher beanspruchen.
3. Unterstützt eine Instanz mehrere DBs in einem Cluster?
Die oben genannten Punkte basieren alle auf der Situation einzelner Redis. Im Falle eines Clusters wird die Verwendung des Select-Befehls zum Wechseln der Datenbank nicht unterstützt, da es im Redis-Cluster-Modus nur eine Datenbank0 gibt
Empfohlenes Lernen: Redis-Datenbank-Tutorial
Das obige ist der detaillierte Inhalt vonWarum erstellt Redis standardmäßig 16 Datenbanken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!