31. memcache和redis的区别
首先介绍一下memcache
https://www.cnblogs.com/xrq730/p/4948707.html
区别:
1.Redis中,并不是所有的数据都一直存储在主内存中的,这是和MemCache相比一个最大的区别。
2.memcache只支持k-v结构,redis支持5中数据类似,字符串,链表,哈希,集合,有序集合。
3.MemCache单个k-v大小有限,一个value最大只支持1MB,key最大250个字符,而Redis最大支持512MB
4.MemCache无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失,Redis支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失手段。
5.Redis单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。
6.分布式设定MemCache集群,利用magenta做一主多从,redis可以做一主多从,也可以一主一从。(MemCache虽然被称为"分布式缓存",但是MemCache本身完全不具备分布式的功能,MemCache集群之间不会相互通信)
7.redis除了作为数据库使用之外,还可以做消息队列,数据堆栈和数据缓存等,MemCache适用于缓存sql语句,数据集,用户临时性数据,延迟查询数据 session等。