Redis om

Redis om

Wprowadzenie do Redis om

Jako programiści komputerowi pracujący z danymi, regularne przypisanie jest zgodne z danymi zgodnymi z konkretnym wymogiem. Struktury danych ułatwiają programistom, dostarczając właściwe sposoby działania na danych. Redis jest jednym z popularnych magazynów danych w pamięci, które obsługują kilka solidnych struktur danych, takich jak skróty, sortowane zestawy, zestawy, listy, strumienie itp. To otworzyło drzwi do wdrażania zaawansowanych narzędzi, takich jak kolejki komunikatów, pamięci podręczne, tablice liderów, systemy pub/substancje itp. bardziej wydajnie i z obniżonymi kosztami.

Powszechnym problemem jest to, że wdrożenie wcześniej wymienionych narzędzi od zera jest kosztowne i czasochłonne. Tak więc zespół programistów wymyślił warstwę abstrakcyjną, aby ułatwić mapowanie między strukturami danych Core Redis a językiem programowania, którego używają. Nawet jeśli zaimplementowana jest niestandardowa warstwa abstrakcyjna, może wprowadzić znaczne opóźnienie w zakresie wydajności. Z tego powodu nie będziesz w stanie uzyskać maksymalnej wydajności ze struktur danych Redis.

Redis OM to maper obiektowy dla Redis, który pomaga programistom pracować ze strukturami danych Redis w ich środowisku programowania bez dodatkowego wysiłku. Zapewnia warstwę abstrakcji wyższego poziomu do mapowania obiektów. Zwykle określona domena jest modelowana w sposób zorientowany na obiekt. Tak więc Redis OM zapewnia zestaw bibliotek klientów specyficznych dla języka, które można użyć do utrzymywania obiektów domeny w magazynie danych Redis i pobieraniu osób z interfejsem API specyficznym dla języka.

Mapowanie obiektów domeny za pomocą Redis OM

Możliwość mapowania obiektów jest jedną z głównych cech, które są wyposażone w Redis OM. Warstwa abstrakcji Redis OM ułatwia życie konsumenta, zapewniając bogaty interfejs API specyficzny dla języka. Obejmuje to prosty, mniej czasochłonny proces do naśladowania.

Załóżmy, że pracujemy w domenie ERP i musimy przechowywać pracowników w sklepie Redis. Z REDIS OM, musimy najpierw zdefiniować nasz schemat „pracownika” w następujący sposób. Użyjemy biblioteki klientów OM do węzła.JS tutaj:

Pracownik klasy rozszerza jednostkę
const schema = nowy schemat (pracownik,
id: type: 'string',
Wiek: typ: 'liczba',
stopnie: type: 'string []'
);

Zajęcia „jednostki” i „schematu” pochodzą z warstwy abstrakcji OM.

Następnie można utworzyć instancję pracownika w następujący sposób:

const oadmeeOBJ = pracuje.createEntity ()
pracownik.id = "1000"
pracownik.Wiek = 45
pracownik.stopnie = [„BSC”, „MSC”, „PhD”]
const oadmeeOBJID = oczekiwanie na zatrudnienie.Save (album)

„EmployeEOBJID” zawiera ULID utworzonego obiektu, który jest bezpieczny dla URL, globalnie unikalny i kodowany baza32. Jest bardziej podobny do zwykłych uuidów. Ponadto jednostki domenowe są serializowane na dwa różne sposoby. Podstawowe obiekty o jednolitej strukturze są serializowane z haszem Redis. Złożone obiekty z dziesiątkami pól i istot zagnieżdżonych są konwertowane na strukturę JSON za pomocą modułu RedisJSON.

Zapytanie obiektów domeny z Redis OM

Redis OM zapewnia interfejs API zapytania do pobierania trwałych obiektów w sklepie Redis. Niniejszy interfejs API zapytania wykorzystuje moduły RedisJSON i Redisearch na swojej podstawowej implementacji, aby zapewnić indeksowanie i zapytanie do obiektów domeny. Wydajność zapytania jest wydajna, ponieważ domyślnie są indeksowane.

Możemy zapytać wszystkie obiekty pracowników w sklepie Redis za pomocą węzła.JS OM API w następujący sposób:

Zatrudnienie.szukaj().powrót.Wszystko()

Ponadto zapytanie można wykonywać na różne sposoby, stosując opcje filtrowania dostarczone przez Redis Om Fluent API. Klauzulę „gdzie” można użyć w następujący sposób:

Zatrudnienie.szukaj().Gdzie().Eq ().powrót.Wszystko()
Zatrudnienie.szukaj().Gdzie().GT ().powrót.Wszystko()
Zatrudnienie.szukaj().Gdzie().LT ().powrót.Wszystko()
Zatrudnienie.szukaj().Gdzie().Eq ().powrót.Wszystko()

Uwalnia wiele obciążeń od programistów, koncentrując się bardziej na rozwoju aplikacji.

Biblioteki klientów Redis OM

Do czasu pisania tego artykułu wydane są cztery główne biblioteki klientów Redis OM na Spring Java, .Net, węzeł.JS i języki Pythona. Węzeł.Biblioteka JS jest zaimplementowana za pomocą TypeScript i obsługuje zarówno domeny typuScript, jak i JavaScript. .Biblioteka OM specyficzna dla netto włącza .Twórcy netto do mapowania i zapytania o obiekty domeny za pomocą LINQ.

Ponadto biblioteka Redis Om Python integruje się z frameworkiem Fastapi, aby zapewnić obsługę synchroniczną i asynchroniczną. Popularna sprężyna Java jest zintegrowana z Redis OM, aby zapewnić probabilistyczne struktury danych.

Wniosek

Krótko mówiąc, Redis OM zapewnia zestaw bibliotek klientów specyficznych dla języka do mapowania obiektów domeny na struktury danych Redis. Jest to warstwa abstrakcyjna, która pomaga bardziej skupić się na logice aplikacji, nie martwiąc się, jak zmapować Java lub węzeł.klasa JS do haszu Redis. Jak wskazano, Redis OM koncentruje się na mapowaniu obiektów i zapytaniu. Obiekty domeny są serializowane w skrótach lub strukturach JSON w oparciu o złożoność obiektu. Z drugiej strony interfejs API zapytania używa modułów RedisJSON i Redisearch. Redis OM obsługuje Java, węzeł.JS, Python i .Biblioteki klientów netto.