Redis Redisgraph

Redis Redisgraph

Grafdatabaser er i stand til å representere nettverk av enheter som er sammenkoblet basert på forskjellige forhold. De bruker noder, kanter og egenskaper for å lagre data som relasjonsdatabaser ikke er utstyrt med. Videre har noder dataenheter, og kanter lagrer forhold mellom enheter.

Rask introduksjon til Redisgraph

Flere grafdatabaser å velge mellom i dag, og denne guiden fokuserer på Redisgraph, som er en relativt ny spiller på dette området. Redisgraph er bygget som en modul for Redis som er enkel å bruke og ekstremt raskt. I tillegg, for å samhandle med Redisraph -databasene, brukes Cypher Query -språket, som også brukes i noen andre grafdatabaser.

Bak kulissene - Redisraph Internal Technology

Redisgraph bruker sparsomme matriser for internt å representere grafdataene. Det utnytter også det høyt optimaliserte Graphblas-biblioteket som gir en kombinasjon av høy ytelse og veldig kompakt lagring. For å fremheve, er Redis enkelttrådet, og det er slik innkommende forespørsler håndteres selv for Redisgraph; Når en Redisgraph -spørring når Redisraph -databasen, blir den sendt videre til et trådbasseng. Fordi Redis -moduler kan administrere flere tråder. I motsetning til andre grafdatabaser, når du serverer spørsmål, fokuserer Redisgraph mer på scenarier med høyt gjennomstrømning. Så en grafspørsmål til enhver tid vil vanligvis bare kjøre på en tråd. Det kan høres ut som motsatt, men referanseindeksene viser at denne skalaene er perfekt.

Sette opp Redisgraph

Flere tilnærminger til å sette opp og samhandle med Redisraph -databasen som oppført i det følgende.

  • Bruke det offisielle Redisraph Docker -bildet
  • Bygg kildekoden og last den som en modul
  • Redis skyforekomst med Redisgraph -modul aktivert

Bruke Redisraph Docker -bildet

Den raskeste måten å opp og kjøre en Redisgraph -database er å laste ned og kjøre en RedisGraph -forekomst i en Docker -container. Følgende Docker -kommandoen brukes til å starte en Redis -forekomst med Redisgraph aktivert.

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

Når Docker-beholderen er oppe, kan du snakke med Redisraph-databasen ved hjelp av Redis-CLI.

Bygge kilden

Kildekoden for redisgrafen finner du i følgende depot.

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

Det kan enkelt klones med følgende Git -kommando.

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

I Ubuntu eller OS X må du installere “CMake” ved hjelp av henholdsvis følgende kommandoer.

Ubuntu:

APT-Få install Build-Essential CMake M4 Automake Peg Libtool AutoConf

OS X:

Brygg install CMake M4 Automake Peg Libtool AutoConf

Siden "Make" er tilgjengelig i systemet, kan du bare utføre "Make" -kommandoen fra roten til prosjektkatalogen. Når du bygger redisgrafkildekoden, er Redisgraph.så Modul (kompilerer binær) finner du i src katalog.

Det er mulig å laste inn Redisraph -modulen ved å bruke modulen Load -kommandoen ved kjøretid. Videre LoadModule Direktivet kan settes til banen til den kompilerte binæren i Redis.Conf -filen som følger.

Redis Cloud med Redisgraph -modul aktivert

En av de enkleste måtene å spille med en Redisgraph er å lage et Redis Cloud -abonnement og bruke en Redis Cloud -forekomst med Redisraph -modulen aktivert. Så du kan koble deg til skyforekomsten med Redis-CLI uten ytterligere belastning med å bygge kilden manuelt i den lokale maskinen og laste den eksplisitt.

Forbruker Redisgraph Database - Redisgraph -kommandoer

Når du er ferdig med å sette opp Redisgraph -databasen, er det på tide å konsumere databasen. Flere kommandoer er tilgjengelige for Redis -klienter å snakke med Redisraph -databasen. Det viktigste er at disse grunnleggende kommandoene godtar Opencypher -spørsmål. Noen av de ofte brukte grunnleggende redisraph -kommandoene er oppført i det følgende.

KURVE.SPØRSMÅL - Kjører en opencypher -spørring mot en gitt graf som forbedrer funksjonaliteten med tilleggsfunksjoner og klausuler.

KURVE.Config Get | SETT - Henter eller oppdaterer verdien av en redisraph -konfigurasjonsparameter.

KURVE.Slett - Fjerner grafen og tilhørende enheter.

KURVE.LISTE - Alle grafnøklene vil liste opp.

KURVE.FORKLARE - Viser bare utførelsesplanen for spørringen og utfører ikke Opencypher -spørringen.

Flere detaljer om kommandoene ovenfor finner du her.

Bruk sak - Sosialt nettverk med Redisgraph -database

I dette eksemplet vil vi bruke en Redis Cloud -forekomst med Redisraph -modulen aktivert. Redis-CLI brukes til å koble til Redisraph-databasen, og du kan bekrefte at Redisraph-modulen er aktivert ved å utføre følgende kommando.

Modulliste

Som forventet, kurve Modul er tilgjengelig for bruk.

Opprette en graf

La oss først lage en graf som består av noen enheter og forhold i sammenheng med sosiale nettverk. Følgende format må følges for å lage en graf ved hjelp av spørringsspråk.

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

Anta at John følger Mary, Mary følger Jack, og Jack følger Nisha i et sosialt nettverk. Dette kan være representert ved hjelp av en grafdatabase som Redisgraph enkelt. Så la oss lagre disse enhetene og relasjonene som er knyttet til dem som følger ved å bruke Opencypher Query Language.

KURVE.Query SocialNetwork "Create (: Person Name: 'John')-[: Følger]-> (: Person Navn: 'Mary'), (: Person Name: 'Mary')-[: Følger] -> (: person navn: 'jack'), (: person navn: 'jack')-[: følger]-> (: person navn: 'nisha') '

Hver nye oppføring er atskilt med komma.

Når du utfører grafen.Spørringskommando returnerer noe nyttig informasjon relatert til den opprettede grafen, for eksempel antall noder, forhold og egenskaper som er opprettet og sett.

Legge til nye noder

Det er mulig å legge til nye noder til den tidligere opprettede grafen også. La oss legge til en ny person som heter “Ricky Martin” til den eksisterende grafen som følger.

KURVE.Query SocialNetwork "Create (: Person Name: 'Ricky Martin')"

Spør på grafen

Vi kan også hente grafdataene ved hjelp av graf.Spørringskommando som følger.

KURVE.Query SocialNetwork "Match (P: Person)-[: Følger]-> (Q: Person) hvor q.Navn = 'Jack' Return P, Q "

Som forventet, bør de andre forholdsdetaljene returneres i henhold til spørringen ovenfor. Fordi spørringen ber om “følger ” forhold, men spesifikt skal følgeren være “Jack”.

I disse eksemplene brukte vi Redis-CLI-klienten til å samhandle med Redisgraph. Men du kan bruke flere andre klientbiblioteker utviklet for forskjellige språk som Python for å spørre om Redisraph -databasene.

Konklusjon

For å oppsummere, er RedisGraph en grafdatabase som er tilgjengelig som en Redis-modul med superfast spørringsmuligheter. Som diskutert, er det flere måter du kan opp og kjøre en Redisgraph -database, for eksempel å bruke et Docker -bilde, manuelt bygge kildekoden, eller til og med med et Redis Cloud -abonnement med RedisGraph -modulen aktivert.

Redisraph-kommandoene og API kan brukes til å snakke med databasen gjennom Redis-CLI eller andre Redis-klienter. Som en endelig merknad anbefales det å bli kjent med Opencypher Query Language, som brukes av Redisgraph for å opprette, oppdatere eller slette grafer, noder og forhold.