Introduzione a Redis om
Come programmatori di computer che lavorano con i dati, è un compito regolare per disporre i dati per soddisfare un requisito specifico. Le strutture di dati rendono facile questo compito per gli sviluppatori fornendo i modi adeguati per operare sui dati. Redis è uno dei popolari negozi di dati in memoria che supporta diverse solide strutture di dati come hash, set ordinati, set, elenchi, flussi, ecc. Ciò ha aperto le porte per l'implementazione di strumenti avanzati come code di messaggi, cache, classifiche, pub/secondari, ecc. in modo più efficiente e con costi ridotti.
Il problema comune è che è costoso e richiede tempo per implementare gli strumenti precedentemente menzionati. Quindi, il team di sviluppo ha escogitato un livello di astrazione per facilitare la mappatura tra le strutture di dati di Redis di base e il linguaggio di programmazione che usano. Anche se viene implementato un livello di astrazione personalizzato, potrebbe introdurre un notevole ritardo delle prestazioni. Per questo motivo, non sarai in grado di ottenere le massime prestazioni dalle strutture di dati Redis.
Redis om è un mapper oggetti per Redis che aiuta gli sviluppatori a lavorare con le strutture di dati Redis all'interno del loro ambiente di programmazione senza ulteriori sforzi. Fornisce un livello di astrazione di livello superiore per la mappatura degli oggetti. Di solito, un dominio specifico è modellato in modo orientato agli oggetti. Quindi, Redis OM fornisce una serie di librerie client specifiche per la lingua che possono essere utilizzate per persistere agli oggetti di dominio nell'archivio di dati Redis e recuperare quelli con un'API specifica per la lingua.
Mappatura degli oggetti di dominio con Redis OM
La capacità di mappatura degli oggetti è una delle principali caratteristiche fornite con Redis om. Lo strato di astrazione Redis OM rende facile la vita del consumatore fornendo una ricca API specifica per il linguaggio. Implica un processo semplice e meno richiedente da seguire.
Supponiamo che stiamo lavorando in un dominio ERP e dobbiamo conservare i dipendenti nel Redis Store. Con Redis Om in atto, dobbiamo definire prima il nostro schema "dipendente" come segue. Useremo la libreria client OM per il nodo.js qui:
Il dipendente di classe estende l'entità
const schema = new Schema (dipendente,
id: type: 'string',
età: type: 'numera',
gradi: type: 'string []'
);
Le classi "Entità" e "Schema" provengono dal livello di astrazione OM.
Successivamente, un'istanza dei dipendenti può essere creata come segue:
const EmployeEobj = EmployEERePository.createenty ()
Employeeobj.id = "1000"
Employeeobj.età = 45
Employeeobj.gradi = ['bsc', 'msc', 'phd']
const EmployeeEobjid = Abved EmployerEPository.Salva (album)
Il "EmployeeEobjid" contiene l'ULID dell'oggetto creato che è URL-Safe, a livello globale unico e codificato da base32. È più simile ai soliti uuidi. Inoltre, le entità del dominio sono serializzate in due modi diversi. Gli oggetti di base con una struttura uniforme sono serializzati in un hash Redis. Gli oggetti complessi con decine di campi e entità nidificate vengono convertiti in struttura JSON usando il modulo Redisjson.
Interrogazione degli oggetti di dominio con Redis om
Redis OM fornisce un'API di query per recuperare gli oggetti persistenti nel Redis Store. Questa API di query utilizza i moduli Redisjson e Redissearch alla sua implementazione di base per fornire indicizzazione e query per gli oggetti di dominio. Le prestazioni della query sono efficienti perché sono indicizzate per impostazione predefinita.
Possiamo interrogare tutti gli oggetti dei dipendenti nel Redis Store usando il nodo.JS OM API come segue:
EmployEerePository.ricerca().ritorno.Tutto()
Inoltre, la query può essere eseguita in diversi modi utilizzando le opzioni di filtraggio fornite da Redis OM Fluent Query API. La clausola "dove" può essere usata come segue:
EmployEerePository.ricerca().Dove().Eq ( ).ritorno.Tutto()
EmployEerePository.ricerca().Dove().GT ( ).ritorno.Tutto()
EmployEerePository.ricerca().Dove().LT ( ).ritorno.Tutto()
EmployEerePository.ricerca().Dove().Eq ( ).ritorno.Tutto()
Rilascia molti oneri lontano dagli sviluppatori concentrandosi maggiormente sullo sviluppo delle applicazioni.
Librerie client Redis OM
Al momento della stesura di questo articolo, quattro le principali librerie clienti Redis OM vengono rilasciate per Java Spring, .Net, nodo.Lingue JS e Python. Il nodo.La libreria JS è implementata utilizzando TypeScript e supporta sia i domini TypeScript che JavaScript. IL .La libreria OM specifica netta abilita il .Sviluppatori netti per mappare e interrogare gli oggetti del dominio usando LINQ.
Inoltre, la libreria Redis Om Python si integra con il framework FASTPI per fornire il supporto sincrono e asincrono. Il famoso framework di primavera di Java è integrato con il Redis om per fornire le strutture di dati probabilistiche.
Conclusione
In breve, Redis OM fornisce una serie di librerie client specifiche per la lingua per mappare gli oggetti di dominio alle strutture di dati Redis. È un livello di astrazione che ti aiuta a concentrarti maggiormente sulla logica dell'applicazione senza preoccuparti di come mappare un java o un nodo.classe JS a un hash Redis. Come indicato, Redis OM si concentra sulla mappatura degli oggetti e sulla query. Gli oggetti del dominio vengono serializzati in strutture hash o JSON in base alla complessità dell'oggetto. D'altra parte, l'API di query utilizza i moduli Redisjson e Redissearch. Redis OM supporta Java, nodo.JS, Python e .Biblioteche dei clienti netti.