Redis和Memcache区别对比?如何选择这两个技术?

请先 登录 后评论

1 个回答

匿名


共同点:

1.Memcached与Redis都属于内存内、键值数据存储方案,都是nosql数据库中的杰出代表。

2.几乎所有主流程序设计语言都有支持memcached和redis的客户端库,上手容易,门槛极低。

3.两者都是数据存储于内存,这也导致两者几乎有相同的特征(与指标)表现、负载的数据吞吐量与延迟状况。


区别:

 1.Memcached将键名限制在250字节,值也被限制在不超过1MB, Redis的键名和值都最大支持512M。

 2.Memcached只支持k/v类型存储,Redis不仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

 3.Memcached无数据持久性方案,Redis可持久化到磁盘。

 4.Memcache服务重启后,数据不可恢复; redis数据丢失后可以通过aof恢复。

 4.Memcached不支持主从,Redis能够提供复制功能,支持主从。

 5.Memcached的数据回收机制使用的是LRU(即最低近期使用量)算法,Redis采用的数据回收机制,允许细粒度控制过期缓存,在必要时将旧数据从内存中删除。

 6.Memcached没有身份验证,Redis虽然默认无身份验证,但是它支持身份验证。

 7.Memcached的最大过期时间是一个月,Redis没有最大过期时间限制,可持久存储。

 8.Redis是单线程,Memcached是多线程。

 9.Memcached的过期策略是惰性删除,Redis的过期策略是惰性删除+定期删除。


选型:

因为Memcache是多线程,若是仅当缓存,读取key-value数据,建议用Memcache。

若是要支持数据持久化,多数据类型(如集合、列表,哈希等),就用Redis。

请先 登录 后评论

扫一扫下方二维码,关注本站官方公众号
回复:面试题
获取永久解锁本站全部文章的验证码