Need advice about which tool to choose?Ask the StackShare community!

Neo4j

1.2K
1.4K
+ 1
352
RedisGraph

31
107
+ 1
7
Add tool

Neo4j vs RedisGraph: What are the differences?

Neo4j and RedisGraph are both graph databases that are used for storing and querying connected data. Let's explore the key differences between them.

  1. Data Model: Neo4j is a property graph database, which means it uses nodes, relationships, and properties to represent data. RedisGraph, on the other hand, is a graph database implemented as a module for Redis, a key-value store. RedisGraph's data model is based on the Resource Description Framework (RDF), which uses subject-predicate-object triples to represent relationships between entities.

  2. Scalability: Neo4j is designed to scale horizontally, meaning it can distribute data across multiple machines to handle large-scale datasets and high query loads. RedisGraph, being a Redis module, inherits Redis' scalability and can also be scaled horizontally by adding more Redis instances to the cluster.

  3. Indexing: Neo4j provides extensive indexing capabilities, allowing users to create different types of indexes on nodes and relationships to optimize query performance. RedisGraph, on the other hand, currently only supports indexing on node labels, limiting its indexing capabilities compared to Neo4j.

  4. Built-in Features: Neo4j comes with a wide range of built-in features such as a query language (Cypher), full-text search, and advanced security and access control mechanisms. RedisGraph, being a module for Redis, relies on Redis' built-in features and does not provide the same level of functionality out-of-the-box as Neo4j.

  5. Language Support: Neo4j provides official drivers and libraries for various programming languages, including Java, JavaScript, Python, and .NET, making it easy to integrate with different application stacks. RedisGraph, being a module for Redis, can be accessed using Redis' own client libraries and drivers, which are available for numerous programming languages.

  6. Data Persistence: Neo4j stores data persistently on disk, ensuring durability and fault-tolerance. RedisGraph, being a module for Redis, also supports data persistence by leveraging Redis' capabilities to persist data to disk. However, RedisGraph does not provide the same level of durability and fault-tolerance as Neo4j.

In summary, Neo4j is a mature graph database that offers a rich set of features and is well-suited for complex graph queries and analytics. On the other hand, RedisGraph leverages the speed and scalability of Redis to provide a high-performance graph database solution, making it ideal for real-time graph processing and caching scenarios.

Advice on Neo4j and RedisGraph
Jaime Ramos
Needs advice
on
ArangoDBArangoDBDgraphDgraph
and
Neo4jNeo4j

Hi, I want to create a social network for students, and I was wondering which of these three Oriented Graph DB's would you recommend. I plan to implement machine learning algorithms such as k-means and others to give recommendations and some basic data analyses; also, everything is going to be hosted in the cloud, so I expect the DB to be hosted there. I want the queries to be as fast as possible, and I like good tools to monitor my data. I would appreciate any recommendations or thoughts.

Context:

I released the MVP 6 months ago and got almost 600 users just from my university in Colombia, But now I want to expand it all over my country. I am expecting more or less 20000 users.

See more
Replies (3)
Recommends
on
ArangoDBArangoDB

I have not used the others but I agree, ArangoDB should meet your needs. If you have worked with RDBMS and SQL before Arango will be a easy transition. AQL is simple yet powerful and deployment can be as small or large as you need. I love the fact that for my local development I can run it as docker container as part of my project and for production I can have multiple machines in a cluster. The project is also under active development and with the latest round of funding I feel comfortable that it will be around a while.

See more
David López Felguera
Full Stack Developer at NPAW · | 5 upvotes · 48.2K views
Recommends
on
ArangoDBArangoDB

Hi Jaime. I've worked with Neo4j and ArangoDB for a few years and for me, I prefer to use ArangoDB because its query sintax (AQL) is easier. I've built a network topology with both databases and now ArangoDB is the databases for that network topology. Also, ArangoDB has ArangoML that maybe can help you with your recommendation algorithims.

See more
Recommends
on
ArangoDBArangoDB

Hi Jaime, I work with Arango for about 3 years quite a lot. Before I do some investigation and choose ArangoDB against Neo4j due to multi-type DB, speed, and also clustering (but we do not use it now). Now we have RMDB and Graph working together. As others said, AQL is quite easy, but u can use some of the drivers like Java Spring, that get you to another level.. If you prefer more copy-paste with little rework, perhaps Neo4j can do the job for you, because there is a bigger community around it.. But I have to solve some issues with the ArangoDB community and its also fast. So I will preffere ArangoDB... Btw, there is a super easy Foxx Microservice tool on Arango that can help you solve basic things faster than write down robust BackEnd.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Neo4j
Pros of RedisGraph
  • 70
    Cypher – graph query language
  • 61
    Great graphdb
  • 33
    Open source
  • 31
    Rest api
  • 27
    High-Performance Native API
  • 23
    ACID
  • 21
    Easy setup
  • 17
    Great support
  • 11
    Clustering
  • 9
    Hot Backups
  • 8
    Great Web Admin UI
  • 7
    Powerful, flexible data model
  • 7
    Mature
  • 6
    Embeddable
  • 5
    Easy to Use and Model
  • 4
    Best Graphdb
  • 4
    Highly-available
  • 2
    It's awesome, I wanted to try it
  • 2
    Great onboarding process
  • 2
    Great query language and built in data browser
  • 2
    Used by Crunchbase
  • 3
    10x – 600x faster than any other graph database
  • 2
    Cypher – graph query language
  • 1
    Great graphdb
  • 1
    Open source

Sign up to add or upvote prosMake informed product decisions

Cons of Neo4j
Cons of RedisGraph
  • 9
    Comparably slow
  • 4
    Can't store a vertex as JSON
  • 1
    Doesn't have a managed cloud service at low cost
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Neo4j?

    Neo4j stores data in nodes connected by directed, typed relationships with properties on both, also known as a Property Graph. It is a high performance graph store with all the features expected of a mature and robust database, like a friendly query language and ACID transactions.

    What is RedisGraph?

    RedisGraph is a graph database developed from scratch on top of Redis, using the new Redis Modules API to extend Redis with new commands and capabilities. Its main features include: - Simple, fast indexing and querying - Data stored in RAM, using memory-efficient custom data structures - On disk persistence - Tabular result sets - Simple and popular graph query language (Cypher) - Data Filtering, Aggregation and ordering

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Neo4j?
    What companies use RedisGraph?
    See which teams inside your own company are using Neo4j or RedisGraph.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Neo4j?
    What tools integrate with RedisGraph?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    What are some alternatives to Neo4j and RedisGraph?
    Titan
    Titan is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. Titan is a transactional database that can support thousands of concurrent users executing complex graph traversals in real time.
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    Cassandra
    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
    OrientDB
    It is an open source NoSQL database management system written in Java. It is a Multi-model database, supporting graph, document, key/value, and object models, but the relationships are managed as in graph databases with direct connections between records.
    JanusGraph
    It is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. It is a transactional database that can support thousands of concurrent users executing complex graph traversals in real time.
    See all alternatives