sql >> Database teknologi >  >> NoSQL >> Redis

Ved at bruge MongoDB som vores masterdatabase, skal jeg så bruge en separat grafdatabase til at implementere relationer mellem enheder?

Mike,

du bør være i stand til at gemme dine relationsdata i grafdatabasen. Dens høje ydeevne til at krydse store grafer kommer fra lokalitet, dvs. du kører ikke forespørgsler globalt, men starter snarere et sæt noder (som svarer til dokumenter i dit tilfælde, som slås op af et indeks. Du kan endda gemme start-node- id'er for hurtig adgang i dine mongo-dokumenter). Derfra kan du krydse vilkårligt store stier i konstant tid (med datasætstørrelse).

Hvad er dine andre krav (dvs. datasætstørrelse, antal samtidige adgange osv., forhold/grafkompleksitet).

Dine forespørgsler passer rigtig godt til grafdatabasen og kan let udtrykkes i dens termer.

Jeg vil foreslå, at du bare tager fat i en graphdb som neo4j og laver en hurtig spike med dit domæne for at verificere den generelle gennemførlighed og også finde ud af yderligere spørgsmål, du gerne vil have besvaret, før du investerer i den anden teknologi.

P.S. Hvis du ikke var begyndt endnu, kunne du også have gået med en ren graphdb-tilgang, da grafdatabaser er et supersæt af dokumentdatabaser. Og du vil hellere tale domæne i dit tilfælde alligevel end blot generiske dokumenter. (F.eks. er structr et CMS bygget oven på Neo4j).



  1. Sådan bruger du kryptering til at beskytte MongoDB-data

  2. Hvordan man opsætter handlere i RedMQ fra hændelser rejst i mit domæne

  3. node.js mongodb vælg dokument efter _id node-mongodb-native

  4. Hvad er fordelen ved Redis clustering på forskellige værter?