Redis om

Redis om

Einführung in Redis OM

Als Computerprogrammierer, die mit Daten arbeiten. Datenstrukturen erleichtern den Entwicklern die Aufgabe, indem sie die richtigen Möglichkeiten zur Verfügung stellen, um Daten zu betreiben. Redis ist eines der beliebten In-Memory-Datenspeicher, die mehrere robuste Datenstrukturen wie Hashes, sortierte Sets, Sets, Listen, Streams usw. unterstützt. Dies öffnete die Türen für die Implementierung der erweiterten Tools wie Message -Warteschlangen, Caches, Bestenlisten, Pub/Sub -Systeme usw. effizienter und mit reduzierten Kosten.

Das gemeinsame Problem ist, dass es kostspielig und zeitaufwändig ist, die zuvor genannten Tools von Grund auf neu zu implementieren. Das Entwicklungsteam hat also eine Abstraktionsschicht entwickelt, um die Zuordnung zwischen den Kerndis -Datenstrukturen und der Programmiersprache zu erleichtern, die sie verwenden. Auch wenn eine benutzerdefinierte Abstraktionsschicht implementiert ist, kann sie eine beträchtliche Leistungsverzögerung einführen. Aus diesem Grund können Sie nicht die maximale Leistung aus Redis -Datenstrukturen herausholen.

Redis OM ist ein Objekt Mapper für Redis, der den Entwicklern hilft, mit Redis -Datenstrukturen in ihrer Programmierumgebung ohne zusätzliche Anstrengungen zu arbeiten. Es bietet eine höhere Abstraktionsschicht für die Objektzuordnung. Normalerweise wird eine bestimmte Domäne auf objektorientierte Weise modelliert. Redis OM bietet also eine Reihe von sprachspezifischen Client-Bibliotheken, mit denen Domänenobjekte im Redis-Datenspeicher bestehen und diejenigen mit einer sprachspezifischen API abgerufen werden können.

Domain -Objektzuordnung mit Redis OM

Die Objektzuordnungsfähigkeit ist eines der Hauptmerkmale, die mit Redis OM geliefert werden. Die Redis-OM-Abstraktionsschicht macht das Leben des Verbrauchers einfach. Es beinhaltet einen einfachen, weniger zeitaufwändig.

Nehmen wir an, wir arbeiten in einer ERP -Domain und müssen die Mitarbeiter im Redis Store aufbewahren. Mit Redis OM müssen wir zuerst unser „Mitarbeiter“ -Schema wie folgt definieren. Wir werden die OM -Client -Bibliothek für den Knoten verwenden.JS hier:

Der Mitarbeiter der Klasse erweitert Entity
const schema = neues Schema (Mitarbeiter,
ID: Typ: 'String',
Alter: Typ: 'Nummer',
Grad: Typ: 'String []'
);

Die Klassen „Entität“ und „Schema“ stammen aus der OM -Abstraktionsschicht.

Als nächstes kann eine Mitarbeiterinstanz wie folgt erstellt werden:

const EmployeeObj = MitarbeiterePository.CreateEntity ()
Mitarbeiterobj.id = "1000"
Mitarbeiterobj.Alter = 45
Mitarbeiterobj.Grad = ['BSC', 'MSC', 'PhD']
const EmployeeObjid = Warten Sie MitarbeitereeRepository.Speichern (Album)

Das „MitarbeiterObjid“ hält das Ulid des erstellten Objekts, das URL-sicher, global einzigartig und base32-codiert ist. Es ähnelt den üblichen Uuiden. Darüber hinaus werden die Domäneneinheiten auf zwei verschiedene Arten serialisiert. Die grundlegenden Objekte mit einer gleichmäßigen Struktur werden zu einem Redis -Hash serialisiert. Die komplexen Objekte mit zehn Feldern und verschachtelten Entitäten werden unter Verwendung des Redisjson -Moduls in die JSON -Struktur umgewandelt.

Abfragen von Domänenobjekten mit Redis OM

Redis OM bietet eine Abfrage -API, um die anhaltenden Objekte im Redis -Store abzurufen. Diese Abfrage -API verwendet die Redisjson- und REISEarch -Module an ihrer Basisimplementierung, um Indexierung und Abfrage für Domänenobjekte bereitzustellen. Die Leistung der Abfrage ist effizient, da sie standardmäßig indiziert werden.

Wir können alle Mitarbeiterobjekte im Redis -Speicher mit dem Knoten abfragen.JS OM API wie folgt:

EmploymeroeReePository.suchen().zurückkehren.alle()

Darüber hinaus kann die Abfrage auf unterschiedliche Weise unter Verwendung der Filteroptionen durchgeführt werden,. Die Klausel "Wo" kann wie folgt verwendet werden:

EmploymeroeReePository.suchen().Wo().Gl. ().zurückkehren.alle()
EmploymeroeReePository.suchen().Wo().gt ().zurückkehren.alle()
EmploymeroeReePository.suchen().Wo().lt ().zurückkehren.alle()
EmploymeroeReePository.suchen().Wo().Gl. ().zurückkehren.alle()

Es veröffentlicht viele Belastungen von den Entwicklern, indem es sich mehr auf die Anwendungsentwicklung konzentriert.

Redis Om Client -Bibliotheken

Zum Zeitpunkt des Schreibens dieses Artikels werden für Java Spring vier Hauptklientbibliotheken für Redis -OM -Bibliotheken veröffentlicht, .Netz, Knoten.JS und Python -Sprachen. Der Knoten.Die JS -Bibliothek wird mit dem Typenkript implementiert und unterstützt sowohl die Typscript- als auch die JavaScript -Domänen. Der .Nettospezifische OM -Bibliothek ermöglicht dem .NET -Entwickler, um die Domänenobjekte mit LINQ zu kartieren und abzufragen.

Darüber hinaus integriert sich die Redis Om Python -Bibliothek in das Fastapi -Framework, um die synchrone und asynchrone Unterstützung zu bieten. Das beliebte Frühlingsgerüst von Java ist in die Redis -OM integriert, um die probabilistischen Datenstrukturen bereitzustellen.

Abschluss

Kurz gesagt, Redis OM bietet eine Reihe von sprachspezifischen Client-Bibliotheken, um Ihre Domänenobjekte den Redis-Datenstrukturen abzubilden. Es ist eine Abstraktionsschicht, mit der Sie sich mehr auf Ihre Anwendungslogik konzentrieren können, ohne sich Gedanken darüber zu machen, wie Sie einen Java oder einen Knoten abbilden können.JS -Klasse zu einem Redis -Hash. Wie angegeben, konzentriert sich Redis OM auf Objektzuordnung und Abfragen. Die Domänenobjekte werden basierend auf der Komplexität des Objekts in Hashes- oder JSON -Strukturen serialisiert. Andererseits verwendet die Abfrage -API die Module Redisjson und Recissearch. Redis OM unterstützt Java, Knoten.JS, Python und .Netto -Client -Bibliotheken.