Memcache official definition
Free & Open Source, High-performance, distributed memory object caching system, generic in nature, and intended for us E in speeding to dynamic Web applications by alleviating database load.
Redis official definition
Redis is a open source, BSD licensed, Advanced Key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Same copyright
They are all used by the BSD protocol, using its projects can be used for business users, without having to post two modified code, you can modify the source code.
Data type
Redis data type rich, support set Liset and other types
Memcache supports simple data types and requires clients to handle complex objects themselves
Durability
Redis supports data-on-ground persistent storage
Memcache does not support data persistent storage
Distributed storage
Redis supports Master-slave replication mode
Memcache can be distributed using consistent hash
Value varies in size
Memcache is a memory cache, the key is less than 250 characters in length, and a single item store is less than 1M, not suitable for use by a virtual machine
Data consistency is different
Redis uses a single-threaded model to ensure that the data is submitted sequentially.
Memcache need to use CAS to ensure data consistency. CAS (Check and Set) is a mechanism for ensuring concurrency consistency and belongs to the "optimistic lock" category; The principle is simple: take the version number, the operation, the comparison version number, if the same operation, inconsistent to abandon any operation
CPU utilization
The Redis single-threaded model can use only one CPU to open multiple Redis processes
Memcache and Redis differences