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.
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 |
A single-node or master/standby DCS Redis instance supports up to 256 Redis databases. A cluster instance supports only one database, that is, DB0. |
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.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot