共同点:内存层的操作、键值数据存储方案
都属于nosql
mc与redis区别
1.数据类型支持
mc:string
redis:String、Hash、List、Set(不重复)和Sorted Set(有序)
2.数据持久化支持
redis支持数据持久化(rdb,aof),mc不支持
Redis支持数据的备份,即master-slave模式的数据备份,mc不支持
3.内存管理机制
redis不是单纯将数据保存在内存,内存使用超过阈值时,它会把value值持久化入磁盘,内存只保存key
4.集群管理
Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法(见下一节)来实现Memcached的分布式存储。
Redis更偏向于在服务器端构建分布式存储。下图给出Redis分布式存储架构,其中节点与节点之间通过二进制协议进行通信,节点与客户端之间通过ascii协议进行通信。
为了保证单点故障下的数据可用性,Redis Cluster引入了Master节点和Slave节点。
5.线程
redis为单线程,mc为多线程
redis数据结构复杂,实现多线程要加锁,导致单个线程效率变差
mc数据结构简单,多线程更快