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

Neo4j

1.2K
1.4K
+ 1
351
Redis

60.6K
46.4K
+ 1
3.9K
Add tool

Neo4j vs Redis: What are the differences?

Neo4j vs Redis

Neo4j and Redis are two popular database management systems, each with its own unique features and strengths. Here are the key differences between Neo4j and Redis:

  1. Data Model: Neo4j is a graph database that represents data in a graph structure, consisting of nodes and relationships. It is highly suited for managing complex relationships and performing graph-based operations efficiently. On the other hand, Redis is a key-value store that stores data with a simple key-value pair structure. It excels in caching and real-time data processing applications.

  2. Scalability: Neo4j is designed to handle large-scale graph datasets efficiently, with the ability to scale horizontally across multiple machines. It provides built-in clustering and partitioning mechanisms to distribute data across a cluster. In contrast, Redis is known for its exceptional performance and can handle high write and read loads. It supports replication and sharding for scalability, but it is not specifically built for handling large-scale datasets as in Neo4j.

  3. Query Language: Neo4j uses the Cypher query language, which is specifically designed for querying graph structures. Cypher provides a declarative way of expressing complex graph operations and supports pattern matching, traversal, and aggregation. Redis, on the other hand, supports various data access patterns and provides a rich set of commands for operations like set, get, increment, and more. It does not have a dedicated query language like Cypher.

  4. Data Manipulation: Neo4j provides a comprehensive set of operations for creating, updating, and deleting nodes, relationships, and properties in the graph. It supports transactional operations, ensuring data integrity. Redis, on the other hand, supports atomic operations for data manipulation, allowing multiple commands to be executed as a single operation. However, it does not have built-in support for complex data manipulation like Neo4j.

  5. Data Persistence: Neo4j persists data to disk by default, ensuring durability and data integrity. It provides ACID (Atomicity, Consistency, Isolation, Durability) guarantees for transactions. Redis, on the other hand, is an in-memory database that can optionally persist data to disk. It offers different levels of persistence durability based on configuration settings but does not provide strong ACID guarantees.

  6. Use Cases: Neo4j is well-suited for applications that involve complex relationships and require graph operations like recommendations, fraud detection, social networks, and network analysis. Its graph model allows for efficient traversals and querying of connected data. Redis, on the other hand, is widely used for caching, session management, real-time analytics, and pub/sub messaging. It excels in scenarios that require high-performance data access and data manipulation capabilities.

In summary, Neo4j is a graph database that excels in managing complex relationships and performing graph operations efficiently, while Redis is a versatile key-value store that is highly performant and offers various data access patterns. The choice between the two depends on the specific requirements of the application and the nature of the data being managed.

Advice on Neo4j and Redis
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 · 54.1K 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
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Neo4j
Pros of Redis
  • 69
    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
    Highly-available
  • 4
    Best Graphdb
  • 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
  • 887
    Performance
  • 542
    Super fast
  • 514
    Ease of use
  • 444
    In-memory cache
  • 324
    Advanced key-value cache
  • 194
    Open source
  • 182
    Easy to deploy
  • 165
    Stable
  • 156
    Free
  • 121
    Fast
  • 42
    High-Performance
  • 40
    High Availability
  • 35
    Data Structures
  • 32
    Very Scalable
  • 24
    Replication
  • 23
    Pub/Sub
  • 22
    Great community
  • 19
    "NoSQL" key-value data store
  • 16
    Hashes
  • 13
    Sets
  • 11
    Sorted Sets
  • 10
    Lists
  • 10
    NoSQL
  • 9
    Async replication
  • 9
    BSD licensed
  • 8
    Integrates super easy with Sidekiq for Rails background
  • 8
    Bitmaps
  • 7
    Open Source
  • 7
    Keys with a limited time-to-live
  • 6
    Lua scripting
  • 6
    Strings
  • 5
    Awesomeness for Free
  • 5
    Hyperloglogs
  • 4
    Runs server side LUA
  • 4
    Transactions
  • 4
    Networked
  • 4
    Outstanding performance
  • 4
    Feature Rich
  • 4
    Written in ANSI C
  • 4
    LRU eviction of keys
  • 3
    Data structure server
  • 3
    Performance & ease of use
  • 2
    Temporarily kept on disk
  • 2
    Dont save data if no subscribers are found
  • 2
    Automatic failover
  • 2
    Easy to use
  • 2
    Scalable
  • 2
    Channels concept
  • 2
    Object [key/value] size each 500 MB
  • 2
    Existing Laravel Integration
  • 2
    Simple

Sign up to add or upvote prosMake informed product decisions

Cons of Neo4j
Cons of Redis
  • 9
    Comparably slow
  • 4
    Can't store a vertex as JSON
  • 1
    Doesn't have a managed cloud service at low cost
  • 15
    Cannot query objects directly
  • 3
    No secondary indexes for non-numeric data types
  • 1
    No WAL

Sign up to add or upvote consMake informed product decisions

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 Redis?

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.

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

Jobs that mention Neo4j and Redis as a desired skillset
LaunchDarkly
Oakland, California, United States
What companies use Neo4j?
What companies use Redis?
Manage your open source components, licenses, and vulnerabilities
Learn More

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

What tools integrate with Neo4j?
What tools integrate with Redis?

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

Blog Posts

Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
9
4905
Jun 6 2019 at 5:11PM

AppSignal

RedisRubyKafka+9
16
1791
GitHubDockerReact+17
42
38372
What are some alternatives to Neo4j and Redis?
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