Updated on 2022-02-21 GMT+08:00

Comparing Redis and Memcached

Redis and Memcached are both popular open-source in-memory databases which are easy to use and provide higher performance than relational databases.

How can I select between the two key-value databases?

Memcached is suitable for storing simple data structures, whereas Redis is suitable for storing more complex, larger data that requires persistency.

For details, see the following table.

Table 1 Differences between Redis and Memcached

Item

Redis

Memcached

Latency

In-memory database with sub-millisecond latency

In-memory database with sub millisecond latency

Ease of use

Simple syntax and easy to use

Simple syntax and easy to use

Distributed storage

Horizontal expansion in cluster mode

Supported

Multi-language client

Supports client connections in more than 30 languages including Java, C, and Python.

Supports client connections in more than 10 languages including Java, C, and Python.

Thread/Process

Single-core and single-thread

Single-thread communication, avoiding unnecessary context switching and contention

Non-blocking I/O (I/O multiplexing) is used to reduce resource consumption when multiple clients are connected.

Multi-thread and scalable

The Memcached performance can be improved by increasing the number of CPUs.

There is an obvious performance advantage in the scenario where the value of key is great.

Persistent storage

Supported

Each write operation (adding, deleting, or modifying data) can be recorded on disk (AOF file).

Supported

NOTE:

Persistence is not supported by open-source Memcached, but is supported by DCS for Memcached.

Data structure

Supports complex data structures such as hash, list, set, and sorted set, catering to various scenarios.

Supports simple strings.

Lua script support

Supported

Not supported

Snapshot backup

Supported

Snapshots are generated periodically. Therefore, there is no guarantee that data will not be lost.

Redis forks a subprocess to generate snapshots. When there is a large amount of data, the Redis service may be interrupted for a short time.

Not supported

Key value restriction

The value of a key can be up to 1 GB.

1 MB

Multiple databases

Supports up to 256 Redis databases.

Not supported

Based on the preceding comparison, both the Redis and Memcached are easy to use and have high performance. However, Redis and Memcached are different in data structure storage, persistence, backup, migration, and script support. You are advised to select the most appropriate cache engine based on actual application scenarios.

Memcached is suitable for caching scenarios of small amount of static data, where data is only read without further computing and processing, for example, HTML code snippets.

Redis has richer data structures and wider application scenarios.