Redis om

Redis om

Introduksjon til Redis OM

Som dataprogrammerere som jobber med data, er det en vanlig oppgave å ordne dataene for å oppfylle et spesifikt krav. Datastrukturer gjør denne oppgaven enkel for utviklere ved å tilby de riktige måtene å operere på data. Redis er en av de populære datalagrene i minnet som støtter flere robuste datastrukturer som hasj, sorterte sett, sett, lister, strømmer osv. Dette åpnet dørene for å implementere de avanserte verktøyene som meldingskøer, hurtigbuffer, toppliste, pub/sub -systemer osv. mer effektivt og med reduserte kostnader.

Det vanlige problemet er at det er kostbart og tidkrevende å implementere de tidligere nevnte verktøyene fra bunnen av. Så utviklingsteamet kom med et abstraksjonslag for å lette kartleggingen mellom Core Redis -datastrukturer og programmeringsspråket som de bruker. Selv om et tilpasset abstraksjonslag er implementert, kan det innføre et betydelig ytelsesforsinkelse. På grunn av det vil du ikke kunne få maksimal ytelse ut av Redis -datastrukturer.

Redis Om er en objektkartlegg for Redis som hjelper utviklerne til å jobbe med Redis -datastrukturer i programmeringsmiljøet sitt uten ytterligere innsats. Det gir et abstraksjonslag på høyere nivå for objektkartlegging. Vanligvis er et spesifikt domene modellert på en objektorientert måte. Så Redis OM gir et sett med språkspesifikke klientbiblioteker som kan brukes til å vedvare domeneobjekter i Redis Data Store og hente de med et språkspesifikk API.

Domeneobjektkartlegging med Redis OM

Objektkartleggingsevnen er en av de viktigste funksjonene som følger med Redis OM. Redis OM-abstraksjonslaget gjør forbrukerens liv enkelt ved å tilby et rikt språkspesifikk API. Det innebærer en enkel, mindre tidkrevende prosess å følge.

La oss anta at vi jobber i et ERP -domene, og vi må lagre de ansatte i Redis Store. Med Redis Om på plass, må vi først definere vårt "ansattes" skjema som følger. Vi bruker OM -klientbiblioteket til Node.JS her:

klasseansatt utvider enheten
const skjema = nytt skjema (ansatt,
id: type: 'streng',
Alder: Type: 'Nummer',
grader: type: 'streng []'
);

"Enheten" og "skjema" -klassene kommer fra OM -abstraksjonslaget.

Deretter kan en ansattes instans opprettes som følger:

const exployeTOBJ = EmployeeRePository.CreateEntity ()
Ansattobj.id = "1000"
Ansattobj.Alder = 45
Ansattobj.grader = ['BSc', 'MSc', 'PhD']
const exployeeObjid = Await EmployeeRePository.lagre (album)

"EmployeeObjid" holder ulidet til det opprettede objektet som er URL-sikker, globalt unik og base32-kodet. Det ligner mer på de vanlige uuidene. Videre blir domeneenhetene serialisert på to forskjellige måter. De grunnleggende objektene med en enhetlig struktur blir serialisert til en Redis -hasj. De komplekse objektene med titalls felt og nestede enheter konverteres til JSON -struktur ved bruk av Redisjson -modulen.

Spørring av domeneobjekter med Redis OM

Redis OM gir et spørrings -API for å hente de vedvarende objektene i Redis Store. Denne spørrings -API bruker Redisjson og Redissearch -moduler ved sin base implementering for å gi indeksering og spørring for domeneobjekter. Ytelsen til spørringen er effektiv fordi de er indeksert som standard.

Vi kan spørre alle ansattes objekter i Redis -butikken ved hjelp av noden.JS OM API som følger:

EmployeeRePository.Søk().komme tilbake.alle()

Videre kan spørringen gjøres på forskjellige måter ved å bruke filtreringsalternativene levert av Redis Om Fluent Query API. "Hvor" -klausulen kan brukes som følger:

EmployeeRePository.Søk().hvor().Eq ().komme tilbake.alle()
EmployeeRePository.Søk().hvor().gt ().komme tilbake.alle()
EmployeeRePository.Søk().hvor().LT ().komme tilbake.alle()
EmployeeRePository.Søk().hvor().Eq ().komme tilbake.alle()

Den slipper mye byrder bort fra utviklerne ved å fokusere mer på applikasjonsutvikling.

Redis OM -klientbiblioteker

I løpet av skrivingen av denne artikkelen blir fire viktigste Redis OM -klientbiblioteker utgitt for Java Spring, .Nett, node.JS, og Python -språk. Noden.JS -bibliotek implementeres ved hjelp av TypeScript, og det støtter både TypeScript- og JavaScript -domenene. De .Nettspesifikt OM -bibliotek aktiverer .Nettutviklere for å kartlegge og spørre om domeneobjektene ved hjelp av LINQ.

Videre integreres Redis Om Python -biblioteket med Fastapi -rammen for å gi den synkrone og asynkron støtte. Javas populære vårramme er integrert med Redis OM for å gi de sannsynlige datastrukturer.

Konklusjon

Kort sagt, Redis OM gir et sett med språkspesifikke klientbiblioteker for å kartlegge domeneobjektene dine til Redis-datastrukturer. Det er et abstraksjonslag som hjelper deg å fokusere mer på applikasjonslogikken din uten å bekymre deg for hvordan du kan kartlegge en java eller node.JS -klasse til en Redis Hash. Som indikert fokuserer Redis OM på objektkartlegging og spørring. Domeneobjektene blir serialisert til hasj- eller JSON -strukturer basert på objektets kompleksitet. På den annen side bruker spørrings -API Redisjson og Redissearch Modules. Redis Om støtter Java, node.JS, Python og .Netto klientbiblioteker.