说到缓存技术,就会想到redis和memcache。他们都是内存型数据库。但互联网用到的缓存技术绝大部分都是使用redis,那我们来分析一下redis和memcache的区别,以及redis是如何成为大众的宠儿呢。
1,支持的数据类型不同
memcache支持string类型,图片,视屏等缓存;
redis不仅支持简单的k/v类型,还提供list,hash,set,zset等数据类型。
2,是否支持持久化
memcache不支持持久化,数据都是在内存中,一旦停电则会造成数据丢失,且不可以恢复;
redis支持持久化,通过RDB/AOF两种方式来将数据持久化到磁盘,若停电还可以恢复数据。
3,内存空间和key数量
memcache的key最长250个字符,value不能超过1MB(可以通过配置文件修改);
redis的key和valve均不能超过512MB。
来自redis官网:https://redis.io/docs/data-types/
4,缓存时间
memcache默认支持最多缓存30天;
redis缓存时间没有限制。
5,应用场景不同
redis不仅用做数据缓存,还可以用来消息队列,数据堆栈等方面;
memcache适合简单数据类型,热点常用数据。
6,redis支持主从复制