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

Redis

58.2K
44.8K
+ 1
3.9K
Riak

104
136
+ 1
44
Add tool

Redis vs Riak: What are the differences?

Introduction

Redis and Riak are both NoSQL databases that are highly scalable and provide high availability. However, they have several key differences that set them apart from each other.

  1. Data Model: Redis is primarily a key-value store where the value can be a variety of data structures such as strings, hashes, lists, sets, and sorted sets. Riak, on the other hand, is a document-oriented database that stores JSON documents.

  2. Consistency and Availability: Redis is designed to prioritize consistency and availability, allowing for strong consistency and high availability. Riak, on the other hand, prioritizes availability over consistency, offering only eventual consistency and extreme availability.

  3. Data Replication: Redis supports both master-slave and master-master replication, where data can be replicated to multiple nodes for improved availability and performance. Riak, on the other hand, uses a multi-master replication model, allowing all nodes to accept writes and propagate updates across the cluster in a decentralized manner.

  4. Partition Tolerance: Redis relies on a single server node for both reads and writes, making it less tolerant to network partitioning. Riak, on the other hand, has built-in partition tolerance, allowing it to continue functioning even in the presence of network partitions and node failures.

  5. Querying and Secondary Indexing: Redis provides limited querying capabilities but does not support secondary indexing out of the box. Riak, on the other hand, provides a powerful querying language and supports secondary indexing, allowing for more complex and flexible data retrieval.

  6. Data Durability: Redis, by default, does not guarantee persistence, and data can be lost in the event of a crash or power failure. Riak, on the other hand, offers configurable durability options, allowing data to be written to disk or stored in multiple replicas to ensure its safety.

Summary

Redis and Riak differ in their data models, consistency and availability guarantees, data replication methods, partition tolerance, querying capabilities, and data durability.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Redis
Pros of Riak
  • 886
    Performance
  • 542
    Super fast
  • 513
    Ease of use
  • 444
    In-memory cache
  • 324
    Advanced key-value cache
  • 194
    Open source
  • 182
    Easy to deploy
  • 164
    Stable
  • 155
    Free
  • 121
    Fast
  • 42
    High-Performance
  • 40
    High Availability
  • 35
    Data Structures
  • 32
    Very Scalable
  • 24
    Replication
  • 22
    Great community
  • 22
    Pub/Sub
  • 19
    "NoSQL" key-value data store
  • 16
    Hashes
  • 13
    Sets
  • 11
    Sorted Sets
  • 10
    NoSQL
  • 10
    Lists
  • 9
    Async replication
  • 9
    BSD licensed
  • 8
    Bitmaps
  • 8
    Integrates super easy with Sidekiq for Rails background
  • 7
    Keys with a limited time-to-live
  • 7
    Open Source
  • 6
    Lua scripting
  • 6
    Strings
  • 5
    Awesomeness for Free
  • 5
    Hyperloglogs
  • 4
    Transactions
  • 4
    Outstanding performance
  • 4
    Runs server side LUA
  • 4
    LRU eviction of keys
  • 4
    Feature Rich
  • 4
    Written in ANSI C
  • 4
    Networked
  • 3
    Data structure server
  • 3
    Performance & ease of use
  • 2
    Dont save data if no subscribers are found
  • 2
    Automatic failover
  • 2
    Easy to use
  • 2
    Temporarily kept on disk
  • 2
    Scalable
  • 2
    Existing Laravel Integration
  • 2
    Channels concept
  • 2
    Object [key/value] size each 500 MB
  • 2
    Simple
  • 14
    High Performance
  • 11
    High Availability
  • 9
    Easy Scalability
  • 5
    Flexible
  • 1
    Strong Consistency
  • 1
    Eventual Consistency
  • 1
    Distributed
  • 1
    Multi datacenter deployments
  • 1
    Reliable

Sign up to add or upvote prosMake informed product decisions

Cons of Redis
Cons of Riak
  • 15
    Cannot query objects directly
  • 3
    No secondary indexes for non-numeric data types
  • 1
    No WAL
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    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.

    What is Riak?

    Riak is a distributed database designed to deliver maximum data availability by distributing data across multiple servers. As long as your client can reach one Riak server, it should be able to write data. In most failure scenarios, the data you want to read should be available, although it may not be the most up-to-date version of that data.

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

    Jobs that mention Redis and Riak as a desired skillset
    LaunchDarkly
    Oakland, California, United States
    What companies use Redis?
    What companies use Riak?
    See which teams inside your own company are using Redis or Riak.
    Sign up for StackShare EnterpriseLearn More

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

    What tools integrate with Redis?
    What tools integrate with Riak?

    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
    4641
    Jun 6 2019 at 5:11PM

    AppSignal

    RedisRubyKafka+9
    15
    1644
    GitHubDockerReact+17
    40
    36278
    What are some alternatives to Redis and Riak?
    Memcached
    Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
    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.
    RabbitMQ
    RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
    Hazelcast
    With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
    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.
    See all alternatives