Redis Redisgraph

Redis Redisgraph

I database grafici sono in grado di rappresentare reti di entità interconnesse in base a varie relazioni. Usano nodi, bordi e proprietà per archiviare i dati che i database relazionali non sono dotati di. Inoltre, i nodi detengono entità dati e i bordi archiviano le relazioni tra le entità.

Introduzione rapida a Redisgraph

Diversi database grafici tra cui scegliere oggi e questa guida si concentra su Redisgraph, che è un giocatore relativamente nuovo in quest'area. Il Redisgraph è costruito come un modulo per Redis che è facile da usare ed estremamente veloce. Inoltre, per interagire con i database Redisgraph, viene utilizzato il linguaggio della query Cypher, che viene utilizzato anche in alcuni altri database grafici.

Dietro le quinte - Redisgraph Internal Technology

Redisgraph utilizza matrici sparse per rappresentare internamente i dati grafici. Sfrutta inoltre la libreria Graphblas altamente ottimizzata che fornisce una combinazione di archiviazione ad alte prestazioni e archiviazione molto compatta. Per evidenziare, Redis è singolo ed è così che vengono gestite le richieste in arrivo anche per Redisgraph; Una volta che una query Redisgraph raggiunge il database Redisgraph, viene trasmessa a un pool di thread. Perché i moduli Redis possono gestire più thread. Contrariamente ad altri database grafici, quando si servono query, Redisgraph si concentra maggiormente su scenari ad alto throughput. Quindi, una query grafico in qualsiasi momento in genere verrà eseguita su un solo thread. Potrebbe sembrare controintuitivo, ma i parametri di riferimento dimostrano che questo si ridimensiona perfettamente.

Impostazione Redisgraph

Diversi approcci per l'impostazione e l'interazione con il database Redisgraph come elencato nel seguente.

  • Usando l'immagine ufficiale di Redisgraph Docker
  • Crea il codice sorgente e caricalo come modulo
  • Redis Cloud Istance con modulo Redisgraph abilitato

Utilizzando l'immagine di Redisgraph Docker

Il modo più veloce per aumentare ed eseguire un database Redisgraph è scaricare ed eseguire un'istanza Redisgraph all'interno di un contenitore Docker. Il seguente comando Docker viene utilizzato per avviare un'istanza Redis con Redisgraph abilitato.

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

Una volta scaduto il contenitore Docker, puoi parlare con il database Redisgraph usando Redis-CLI.

Costruire la fonte

Il codice sorgente per Redisgraph è disponibile nel seguente repository.

https: // github.com/redisgraph/redisgraph.idiota

Può essere clonato facilmente con il seguente comando git.

Git Clone - -RECURSE -SUBMODULES -J8 https: // github.com/redisgraph/redisgraph.idiota

In Ubuntu o OS X, è necessario installare "cmake" utilizzando rispettivamente i seguenti comandi.

Ubuntu:

Apt-get Installa build-essenziale CMAKE M4 Automake PEG LibTool AutoConf

OS X:

Brew Installa Cmake M4 Automake PEG LibTool Autoconf

Poiché "Make" è disponibile nel sistema, è possibile eseguire il comando "Make" dalla radice della directory del progetto. Dopo aver costruito il codice sorgente Redisgraph, il redisgraph.COSÌ Il modulo (compile binario) può essere trovato in src directory.

È possibile caricare il modulo Redisgraph utilizzando il comando di caricamento del modulo in runtime. Inoltre, il carico La direttiva può essere impostata sul percorso del binario compilato in Redis.Conf File come segue.

Redis Cloud con modulo Redisgraph abilitato

Uno dei modi più semplici per giocare con un Redisgraph è creare un abbonamento a Cloud Redis e utilizzare un'istanza di Redis Cloud con il modulo Redisgraph abilitato. Quindi, puoi connetterti all'istanza del cloud con Redis-Cli senza ulteriori oneri di costruire la fonte manualmente nella macchina locale e caricarla esplicitamente.

Consumo di Redisgraph Database - Commanti Redisgraph

Una volta terminato la configurazione del database Redisgraph, è tempo di consumare il database. Sono disponibili diversi comandi per i client Redis per parlare con il database Redisgraph. Ancora più importante, questi comandi di base accettano query opencypher. Alcuni dei comandi Redisgraph fondamentali usati di frequente sono elencati nel seguente.

GRAFICO.Domanda - Esegue una query opencypher contro un determinato grafico che migliora la sua funzionalità con ulteriori funzioni e clausole.

GRAFICO.Config get | IMPOSTATO - Recupera o aggiorna il valore di un parametro di configurazione Redisgraph.

GRAFICO.ELIMINARE - Rimuove il grafico e le entità associate.

GRAFICO.ELENCO - Tutti i tasti grafici elencheranno verso il basso.

GRAFICO.SPIEGARE - Mostra solo il piano di esecuzione delle query e non esegui la query di opencypher.

Maggiori dettagli sui comandi sopra sono disponibili qui.

Caso di utilizzo - Social Network con il database Redisgraph

In questo esempio, utilizzeremo un'istanza di Redis Cloud con il modulo Redisgraph abilitato. Il Redis-Cli viene utilizzato per connettersi al database Redisgraph e si può verificare che il modulo Redisgraph sia abilitato eseguendo il seguente comando.

Elenco dei moduli

Come previsto, il grafico Il modulo è disponibile per l'uso.

Creazione di un grafico

Creiamo innanzitutto un grafico che consiste in alcune entità e relazioni nel contesto dei social network. È necessario seguire il seguente formato per creare un grafico utilizzando il linguaggio delle query Opencypher.

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

Supponiamo che John segue Mary, Mary segue Jack e Jack segue Nisha in un social network. Questo può essere rappresentato utilizzando facilmente un database grafico come Redisgraph. Quindi, archiviamo queste entità e le relazioni ad esse associate come segue usando il linguaggio delle query di opencypher.

GRAFICO.Query socialnetwork "create (: persona nome: 'John')-[: segue]-> (: persona nome: 'mary'), (: persona nome: 'mary')-[: segue] -> (: persona nome: 'jack'), (: persona nome: 'jack')-[: segue]-> (: persona nome: 'nisha') "

Ogni nuova voce è separata da una virgola.

Dopo aver eseguito il grafico.Il comando query restituisce alcune informazioni utili relative al grafico creato, come il numero di nodi, relazioni e proprietà create e impostate.

Aggiunta di nuovi nodi

È possibile aggiungere nuovi nodi anche al grafico precedentemente creato. Aggiungiamo una nuova persona chiamata "Ricky Martin" al grafico esistente come segue.

GRAFICO.Query socialnetwork "create (: persona nome: 'Ricky martin')"

Interrogare il grafico

Possiamo anche recuperare i dati del grafico usando il grafico.Comando query come segue.

GRAFICO.Query socialnetwork "match (p: persona)-[: segue]-> (q: persona) dove Q.name = 'jack' return p, q "

Come previsto, i dettagli della seconda relazione dovrebbero essere restituiti in base alla domanda di cui sopra. Perché la domanda chiede il "segue " relazione, ma in particolare, il seguace dovrebbe essere "Jack".

In questi esempi, abbiamo usato il client Redis-Cli per interagire con Redisgraph. Ma puoi utilizzare diverse altre librerie client sviluppate per diverse lingue come Python per interrogare i database Redisgraph.

Conclusione

Per riassumere, Redisgraph è un database grafico disponibile come modulo Redis con funzionalità di query superve. Come discusso, ci sono diversi modi in cui è possibile su ed eseguire un database Redisgraph, come l'uso di un'immagine Docker, costruire manualmente il codice sorgente o anche con un abbonamento a Cloud Redis con il modulo Redisgraph abilitato.

I comandi Redisgraph e l'API possono essere utilizzati per parlare con il database tramite Redis-Cli o altri client Redis. Come nota finale, si consiglia di familiarizzare con il linguaggio della query OpenCencypher, che viene utilizzato da Redisgraph per creare, aggiornare o eliminare grafici, nodi e relazioni.