Redis is a key-value store that keeps all data in memory, so in many ways it looks pretty similar to RAMCloud. This page compares RAMCloud to Redis.

Data Model

Redis has a richer data model than RAMCloud. For example, in addition to the simple get-set semantics provided by RAMCloud, Redis also provides the following operations:

Performance

Redis appears to have throughput of 100K-1M operations/second, which is in the same ballpark as one RAMCloud server. Latency for reads appears to be in the range of 200 microseconds (using 1Gb Ethernet). RAMCloud latency is much faster (5us for reads, 15us for writes), but only with faster networking technologies. With 1Gb Ethernet, RAMCloud is still faster than Redis but less than 2x faster.

Scalability

Redis appears to have been optimized for single-server deployments. If the system scales beyond a single server, then data must be partitioned among the servers:

RAMCloud was designed and optimized for scale (hundreds or thousands of servers). All of RAMCloud's (admittedly simpler) operations work at scale, and performance is not impacted. Scaling in RAMCloud is transparent: clients do not need to be aware of the size of the system. In some ways, RAMCloud gets better as it gets larger: for example, crash recovery from a failed server gets faster as the cluster size increases.

Durability

Redis' durability model is relatively weak:

RAMCloud provides better durability:

Consistency

It does not appear that Redis provides linearizable semantics for operations; the behavior of operations may change in the face of server crashes and restarts.

RAMCloud is designed for full linearizability: crashes and restarts do not affect client-visible behavior.