Redis RedisGraph

Redis RedisGraph

Os bancos de dados de gráficos são capazes de representar redes de entidades interconectadas com base em vários relacionamentos. Eles usam nós, bordas e propriedades para armazenar dados que bancos de dados relacionais não estão equipados com. Além disso, os nós mantêm entidades de dados e as arestas armazenam relacionamentos entre entidades.

Introdução rápida ao redisgraph

Vários bancos de dados de gráficos para escolher hoje em dia, e este guia se concentra no RedisGraph, que é um jogador relativamente novo nessa área. O RedisGraph é construído como um módulo para redis que é fácil de usar e extremamente rápido. Além disso, para interagir com os bancos de dados Redisgraph, a linguagem de consulta Cypher é usada, que também é usada em alguns outros bancos de dados de gráficos também.

Nos bastidores - RedisGraph Internal Technology

RedisGraph usa matrizes esparsas para representar internamente os dados do gráfico. Ele também aproveita a biblioteca GraphBlas altamente otimizada que oferece uma combinação de alto desempenho e armazenamento muito compacto. Para destacar, o Redis é um único thread, e é assim que as solicitações recebidas são tratadas mesmo para o RedisGraph; Quando uma consulta Redisgraph atinge o banco de dados Redisgraph, ela é passada para um pool de threads. Porque os módulos Redis podem gerenciar vários tópicos. Em contraste com outros bancos de dados de gráficos, ao atender às consultas, o RedisGraph se concentra mais em cenários de alto rendimento. Portanto, uma consulta de gráfico a qualquer momento normalmente será executada em apenas um tópico. Pode parecer contra -intuitivo, mas os benchmarks provam que isso escala perfeitamente bem.

Configurando RedisGraph

Várias abordagens para configurar e interagir com o banco de dados Redisgraph, conforme listado no seguinte.

  • Usando a imagem oficial do RedisGraph Docker
  • Construa o código -fonte e carregue -o como um módulo
  • Redis Cloud Instância com o módulo RedisGraph habilitado

Usando a imagem RedisGraph Docker

A maneira mais rápida de aumentar e executar um banco de dados RedisGraph é baixar e executar uma instância do Redisgraph em um contêiner do docker. O comando Docker a seguir é usado para iniciar uma instância do Redis com o RedisGraph ativado.

Docker Run -P 6379: 6379 -it -RM Redislabs/Redisgraph

Depois que o contêiner do Docker estiver acima, você pode conversar com o banco de dados RedisGraph usando Redis-Cli.

Construindo a fonte

O código -fonte do RedisGraph pode ser encontrado no seguinte repositório.

https: // github.com/redisgraph/redisgraph.git

Pode ser clonado facilmente com o seguinte comando git.

Clone Git -Recurse -submodules -J8 https: // github.com/redisgraph/redisgraph.git

No Ubuntu ou OS X, você precisa instalar "cmake" usando os seguintes comandos, respectivamente.

Ubuntu:

APT-GET Instale Build-ESENTENSTIAL CMAKE M4 AUTOMAKE PEG LIBTOOL AUTOCONF

OS X:

Brew Install CMake M4 Automake PEG Libtool AutoConf

Como o "make" está disponível no sistema, você pode simplesmente executar o comando "make" da raiz do diretório do projeto. Ao construir o código fonte do RedisGraph, o RedisGraph.então módulo (compilação binário) pode ser encontrado no src diretório.

É possível carregar o módulo Redisgraph usando o comando de carga do módulo no tempo de execução. Além disso, o LoadModule A diretiva pode ser definida para o caminho do binário compilado no Redis.arquivo conf como segue.

Redis Cloud com módulo Redisgraph ativado

Uma das maneiras mais fáceis de brincar com um redisgraph é criar uma assinatura da Redis Cloud e usar uma instância do Redis Cloud com o módulo RedisGraph ativado. Portanto, você pode se conectar à instância da nuvem com Redis-cli sem nenhum fardo adicional de construir a fonte manualmente na máquina local e carregá-la explicitamente.

Consumindo Banco de Dados Redisgraph - Comandos Redisgraph

Depois de terminar a configuração do banco de dados Redisgraph, é hora de consumir o banco de dados. Vários comandos estão disponíveis para os clientes Redis conversarem com o banco de dados Redisgraph. Mais importante ainda, esses comandos básicos aceitam consultas opecórias. Alguns dos comandos Redisgraph Fundamental frequentemente usados ​​estão listados no seguinte.

GRÁFICO.CONSULTA - Executa uma consulta OpenCypher contra um determinado gráfico que aprimora sua funcionalidade com funções e cláusulas adicionais.

GRÁFICO.Config Get | DEFINIR - Recupera ou atualiza o valor de um parâmetro de configuração Redisgraph.

GRÁFICO.EXCLUIR - Remove o gráfico e as entidades associadas.

GRÁFICO.LISTA - Todas as chaves do gráfico vão listar.

GRÁFICO.EXPLICAR - Mostra apenas o plano de execução da consulta e não executa a consulta OpenCypher.

Mais detalhes sobre os comandos acima podem ser encontrados aqui.

Caso de uso - Rede Social com Banco de Dados Redisgraph

Neste exemplo, usaremos uma instância de nuvem Redis com o módulo Redisgraph ativado. O Redis-Cli é usado para se conectar ao banco de dados Redisgraph e você pode verificar se o módulo Redisgraph está ativado pela execução do seguinte comando.

Lista de módulos

Como esperado, o gráfico módulo está disponível para uso.

Criando um gráfico

Vamos primeiro criar um gráfico que consiste em algumas entidades e relacionamentos no contexto das redes sociais. O formato a seguir precisa ser seguido para criar um gráfico usando a linguagem de consulta OPENCEPHR.

(:)-[:]-> (:)

Suponha que John siga Mary, Mary segue Jack, e Jack segue Nisha em uma rede social. Isso pode ser representado usando um banco de dados de gráficos como o Redisgraph facilmente. Então, vamos armazenar essas entidades e relacionamentos associados a eles o seguinte usando o Openypher Query Language.

GRÁFICO.Query SocialNetwork "Create (: Pessoa Nome: 'John')-[: segue]-> (: Pessoa Nome: 'Mary'), (: Pessoa Nome: 'Mary')-[: segue] -> (: pessoa nome: 'jack'), (: pessoa name: 'Jack')-[: segue]-> (: pessoa name: 'nisha') ”

Cada nova entrada é separada por uma vírgula.

Ao executar o gráfico.O comando de consulta retorna algumas informações úteis relacionadas ao gráfico criado, como o número de nós, relacionamentos e propriedades criadas e definidas.

Adicionando novos nós

É possível adicionar novos nós ao gráfico criado anteriormente. Vamos adicionar uma nova pessoa chamada "Ricky Martin" ao gráfico existente da seguinte maneira.

GRÁFICO.Consulta SocialNetwork "Create (: Pessoa Nome: 'Ricky Martin')"

Consultando o gráfico

Também podemos recuperar os dados do gráfico usando o gráfico.Comando de consulta da seguinte maneira.

GRÁFICO.Consulta SocialNetwork "Match (P: Pessoa)-[: segue]-> (Q: Pessoa) onde q.nome = 'jack' retorna p, q "

Como esperado, os detalhes do segundo relacionamento devem ser devolvidos de acordo com a consulta acima. Porque a consulta pede o “segue ” relacionamento, mas especificamente, o seguidor deve ser "Jack".

Nesses exemplos, usamos o cliente Redis-Cli para interagir com o Redisgraph. Mas você pode usar várias outras bibliotecas de clientes desenvolvidas para diferentes idiomas, como o Python, para consultar os bancos de dados RedisGraph.

Conclusão

Para resumir, o RedisGraph é um banco de dados de gráficos que está disponível como um módulo Redis com recursos de consulta super-rápidos. Conforme discutido, existem várias maneiras pelas quais você pode aprimorar e executar um banco de dados RedisGraph, como usar uma imagem do Docker, construir manualmente o código -fonte ou mesmo com uma assinatura da Redis Cloud com o módulo Redisgraph ativado.

Os comandos Redisgraph e API podem ser usados ​​para conversar com o banco de dados através do Redis-Cli ou de qualquer outro cliente Redis. Como nota final, é recomendável se familiarizar com a linguagem OPENCYPHER, que é usada pelo RedisGraph para criar, atualizar ou excluir gráficos, nós e relacionamentos.