一、存储方式不同
Memecache把数据全部存在内存之中,断电后会挂掉,所以不支持数据持久化,而且数据不能超过内存大小;
Redis有部分存在磁盘上,这样能保证数据的持久性,支持数据的持久化(有RDB快照和AOF日志两种持久化方式)
Memcache和Redis比较,Redis存储数据更多,且在拥有数据持久化下,数据可以快速存储到Redis里,比Memcache快
二、数据支持类型不同
Memcache:支持key-value结构的数据类型,value值大小可以达到1Mb
Redis:支持key-value类型的数据,同时还支持list,set,hash,sorted set等数据结构的存储,value值大小可以达到512M
Memcache和Redis比较,Redis存储数据类型更多,且Redis的value值更大
三、使用底层模型不同
Memcache:多线程的非阻塞IO模型
Redis:直接构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定时间去移动和请求。使用的是单线程的多路IO复用模型
四、运行环境不同
Memcache:Windows和Linux
Redis:Linux
五、集群模式
Memcache:不支持原生的集群模式,需要依靠原生的客户端实现往集群中分片写入数据
Redis:支持主从集群,分片集群(可以把一个大数据分为若干个小数据存储到不同主机)
六、该如何选择
首先考虑系统问题,Windows就要先想Memcache,Redis只有Linux才能用。Memcache只使用key-value存储,如果是单一储存key-value,就考虑这个,多种数据结构就要使用redis,还有就是持久化也得用redis。
