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 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.