In this article, we will have a quick review to point out some key differences between Cassandra and Redis, two well-known NoSQL databases.

What is it?

  • Redis is an in-memory data structure store, used as database, cache and message broker.
  • Cassandra is a wide-column store based on ideas of BigTable and DynamoDB.

Both Redis and Cassandra are open source NoSQL databases.

Who is behind it?

  • Redis is developed and sponsored by Redis Labs
  • Cassandra is Apache top-level project, originally developed by Facebook

License:

  • Redis: BSD
  • Cassandra: Apache

Implementation language:

  • Redis was written in C and C++ while Cassandra was written in Java.

SQL compatibility:

  • Redis store the data as a key-value pair which normally not supported any SQL like language.
  • Cassandra can hold huge data in a tabular format which support HiveQL, a SQL-like language.

Database model:

  • Cassandra follows big table like features, it holding column or column families for the list of data.
  • Redis doesn’t have column concept, it stored data as key-value pair always.

Supported languages:

  • Redis supports almost any languages that you can think of:
    • C
    • C#
    • C++
    • Clojure
    • Crystal
    • D
    • Dart
    • Elixir
    • Erlang
    • Fancy
    • Go
    • Haskell
    • Haxe
    • Java
    • JavaScript (Node.js)
    • Lisp
    • Lua
    • MatLab
    • Objective-C
    • OCaml
    • Pascal
    • Perl
    • PHP
    • Prolog
    • Pure Data
    • Python
    • R
    • Rebol
    • Ruby
    • Rust
    • Scala
    • Scheme
    • Smalltalk
    • Swift
    • Tcl
    • Visual Basic
  • Cassandra supports a few languages:
    • C#
    • C++
    • Clojure
    • Erlang
    • Go
    • Haskell
    • Java
    • JavaScript 
    • Perl
    • PHP
    • Python
    • Ruby
    • Scala

Replication methods:

  • Redis uses the proper Master-slave replication and Multi-master replication.
  • Cassandra uses selectable replication factor.

When to use?

You should consider based on these criteria:

  • Cassandra has been a preferred option for situations that require a lot of writing. It’s also a better solution when considering Fault Tolerance as it follows the proper Hadoop architecture.
  • On the other hand, Redis is always used for frequently and rapidly changed data on both read and write, or when you need Key Value relationship implementation.

Need a good GUI Tool for Redis or Cassandra? Try TablePlus, a modern, native GUI client for multiple databases. It’s free anyway.

Download TablePlus for Mac.

Not on Mac? Download TablePlus for Windows.

TablePlus for Redis