两者都是内存键值对数据库。
数据类型
Memcached 只支持字符串类型;
Redis 支持5种不同数据类型,字符串对象、列表对象、哈希对象、集合对象、有序集合对象。
分布式
Memcacahed 不支持分布式,只能通过客户端使用一致性哈希来实现分布式存储,这种方式在存储和查询时都需要先在客户端计算一次数据所在的节点。
Redis Cluster 实现了分布式支持。
数据持久化
Memcached 不支持持久化;
Redis 有两种持久化策略:RDB、AOF。
内存管理机制
- 在 Redis 中,并不是所有数据都一直存在内存中,可以将一些很久没用的 value 交换到磁盘,而Memcached 的数据一直在内存中;
- Memcached 将内存分割成特定长度的块来存储数据,以完全解决内存碎片的问题,但是内存利用率不高