Redis OM

Redis OM

Introdução a Redis OM

Como programadores de computadores que trabalham com dados, é uma tarefa regular para organizar os dados para atender a um requisito específico. As estruturas de dados facilitam essa tarefa para os desenvolvedores, fornecendo as maneiras adequadas de operar em dados. Redis é um dos populares lojas de dados na memória que suporta várias estruturas de dados robustas, como hashes, conjuntos classificados, conjuntos, listas, fluxos, etc. Isso abriu as portas para implementar as ferramentas avançadas, como filas de mensagens, caches, tabelas de classificação, pub/sub -sistemas, etc. com mais eficiência e com custo reduzido.

O problema comum é que é caro e demorado para implementar as ferramentas mencionadas anteriormente do zero. Assim, a equipe de desenvolvimento criou uma camada de abstração para facilitar o mapeamento entre as estruturas de dados Redis e a linguagem de programação que eles usam. Mesmo que uma camada de abstração personalizada seja implementada, ela poderá introduzir um lag de desempenho considerável. Devido a isso, você não poderá obter o desempenho máximo das estruturas de dados Redis.

Redis OM é um mapeador de objetos para redis que ajuda os desenvolvedores a trabalhar com estruturas de dados Redis em seu ambiente de programação sem esforço adicional. Ele fornece uma camada de abstração de nível superior para mapeamento de objetos. Geralmente, um domínio específico é modelado de maneira orientada a objetos. Portanto, o Redis OM fornece um conjunto de bibliotecas de clientes específicas para idiomas que podem ser usadas para persistir objetos de domínio no armazenamento de dados Redis e buscar aqueles com uma API específica para o idioma.

Mapeamento de objetos de domínio com Redis OM

A capacidade de mapeamento de objetos é uma das principais características que vêm com Redis OM. A camada de abstração Redis OM facilita a vida do consumidor, fornecendo uma rica API específica de linguagem. Envolve um processo simples e menos demorado a seguir.

Vamos supor que estamos trabalhando em um domínio ERP e precisamos armazenar os funcionários na loja Redis. Com o Redis OM no lugar, precisamos definir primeiro nosso esquema de "funcionário" da seguinte maneira. Usaremos a biblioteca de clientes om para nó.JS aqui:

Classe Funcionário estende a entidade
const esquema = novo esquema (funcionário,
id: type: 'string',
idade: type: 'número',
graus: type: 'string []'
);

As classes "entidade" e "esquema" vêm da camada de abstração OM.

Em seguida, uma instância do funcionário pode ser criada da seguinte maneira:

const funcionárioObj = Employeerepository.CreateEntity ()
Funcionário.id = "1000"
Funcionário.idade = 45
Funcionário.graus = ['bsc', 'msc', 'phd']
const funcionamObjid = Aguarda empregandoerepositório.salvar (álbum)

O "FuelyObjid" detém o ULID do objeto criado que é seguro de URL, globalmente único e codificado por base32. É mais semelhante aos uuids usuais. Além disso, as entidades de domínio são serializadas de duas maneiras diferentes. Os objetos básicos com uma estrutura uniforme são serializados para um hash redis. Os objetos complexos com dezenas de campos e entidades aninhadas são convertidas em estrutura JSON usando o módulo Redisjson.

Consultando objetos de domínio com Redis OM

Redis OM fornece uma API de consulta para buscar os objetos persistentes na loja Redis. Esta API de consulta usa os módulos Redisjson e RedisSearch em sua implementação base para fornecer indexação e consulta para objetos de domínio. O desempenho da consulta é eficiente porque eles são indexados por padrão.

Podemos consultar todos os objetos do funcionário na loja Redis usando o nó.JS OM API da seguinte forma:

Employeerepository.procurar().retornar.todos()

Além disso, a consulta pode ser feita de maneiras diferentes usando as opções de filtragem fornecidas pela API de consulta Redis Om Fluent. A cláusula "onde" pode ser usada da seguinte maneira:

Employeerepository.procurar().onde().Eq ().retornar.todos()
Employeerepository.procurar().onde().GT ().retornar.todos()
Employeerepository.procurar().onde().LT ().retornar.todos()
Employeerepository.procurar().onde().Eq ().retornar.todos()

Ele libera muitos encargos dos desenvolvedores, concentrando -se mais no desenvolvimento de aplicativos.

Bibliotecas de clientes Redis OM

No momento da redação deste artigo, quatro bibliotecas de clientes Redis OM são lançadas para Java Spring, .Rede, nó.JS e idiomas Python. O nó.A biblioteca JS é implementada usando o TypeScript e suporta os domínios TypeScript e JavaScript. O .A biblioteca OM específica da rede permite o .Desenvolvedores da rede para mapear e consultar os objetos de domínio usando o LINQ.

Além disso, a Biblioteca Redis Om Python se integra à estrutura FASTAPI para fornecer o suporte síncrono e assíncrono. A popular estrutura de primavera de Java é integrada ao Redis OM para fornecer as estruturas de dados probabilísticas.

Conclusão

Em resumo, o Redis OM fornece um conjunto de bibliotecas de clientes específicas para o idioma para mapear seus objetos de domínio para as estruturas de dados Redis. É uma camada de abstração que ajuda você a se concentrar mais na lógica do seu aplicativo sem se preocupar com como mapear um java ou nó.classe JS para um hash redis. Conforme indicado, Redis OM se concentra no mapeamento e consulta de objetos. Os objetos de domínio são serializados em hashes ou estruturas JSON com base na complexidade do objeto. Por outro lado, a API de consulta usa os módulos Redisjson e RedisSearch. Redis OM suporta java, nó.JS, Python e .Bibliotecas de clientes da rede.