Database Reference
In-Depth Information
Wir wollen Redis auch mit den Schlüsseln für die Bands, Künstler und Rol-
len versorgen, damit wir später schnell auf diese Daten zugreifen können.
Glücklicherweise umfasst das alle Daten, die wir bereits in CouchDB einge-
pflegt haben. Dadurch sparen wir uns separate Befüll-Schritte für Neo4j und
Redis.
Stellen Sie sicher, dass Neo4j an Port 7474 läuft, oder ändern Sie die
createClient -Funktion entsprechend. CouchDB und Redis müssen immer
noch laufen. Laden Sie die folgende Datei herunter und führen Sie sie aus.
Das Programm läuft so lange weiter, bis Sie es beenden.
$ node graph _ sync.js
Dieser Server nutzt das kontinuierliche Polling aus dem CouchDB-Kapitel,
um alle Änderungen an CouchDB nachzuhalten. Wenn eine Änderung er-
kannt wird, machen wir zwei Dinge: Wir befüllen Redis und wir befüllen
Neo4j. Der Code pflegt die Daten über kaskadierende Fallback-Funktionen in
Redis ein, zuerst werden die Bands als "band-name:Bandname" befüllt. Dieses
Muster wird dann auch für den Künstlernamen und die Rollen genutzt.
Auf diese Weise können wir mit Teilstrings suchen. Beispielsweise würde KEYS
band-name:Bea * die Beach Boys, Beastie Boys, Beatles und so weiter zurück-
geben.
redis/graph_sync.js
function feedBandToRedis(band) {
redisClient.set( 'band-name:' + band.name, 1);
band.artists.forEach( function (artist) {
redisClient.set( 'artist-name:' + artist.name, 1);
artist.role.forEach( function (role){
redisClient.set( 'role-name:' + role, 1);
Im nächsten Block befüllen wir Neo4j. Wir haben einen Treiber namens
neo4j _ caching _ client.js entwickelt, den Sie als Teil des Codes zu diesem
Buch herunterladen können. Es nutzt die HTTP-Bibliothek von Node.js, um
die Verbindung zum Neo4j REST-Interface herzustellen. Wir begrenzen darin
die Bandbreite ein wenig, damit der Client nicht zu viele Verbindungen auf
einmal herstellt. Unser Treiber nutzt auch Redis, um die im Neo4j-Graph
vorgenommenen Änderungen nachzuhalten, ohne eine separate Query initi-
ieren z müssen. Das ist die dritte Aufgabe, die wir Redis zukommen lassen
(die erste ist der Transformationsschritt zur Befüllung von CouchDB und die
zweite, die Sie gerade eben gesehen haben, die schnelle Suche nach Band-
namen)
 
Search WWH ::




Custom Search