Memcached, Redis, MongoDB区别

mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数据库,其优点在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。

和memcached更为接近的是redis。它们都是内存型数据库,数据保存在内存中,经过tcp直接存取,优点是速度快,并发高,缺点是数据类型有限,查询功能不强,通常用做缓存。在咱们团队的项目中,一开始用的是memcached,后来用redis替代。

相比memcached:

一、redis具备持久化机制,能够按期将内存中的数据持久化到硬盘上。

二、redis具有binlog功能,能够将全部操做写入日志,当redis出现故障,可依照binlog进行数据恢复。

三、redis支持virtual memory,能够限定内存使用大小,当数据超过阈值,则经过相似LRU的算法把内存中的最不经常使用数据保存到硬盘的页面文件中。

四、redis原生支持的数据类型更多,使用的想象空间更大。

五、前面有位朋友所说起的一致性哈希,用在redis的sharding中,通常是在负载很是高须要水平扩展时使用。咱们尚未用到这方面的功能,通常的项目,单机足够支撑并发了。redis 3.0将推出cluster,功能更增强大。

六、redis更多优势,请移步官方网站查询。redis

7. 性能算法

Redis做者的说法是平均到单个核上的性能,在单条数据不大的状况下Redis更好。为何这么说呢,理由就是Redis是单线程运行的。
由于是单线程运行,因此和Memcached的多线程相比,总体性能确定会偏低。
由于是单线程运行,因此IO是串行化的,网络IO和内存IO,所以当单条数据太大时,因为须要等待一个命令的全部IO完成才能进行后续的命令,因此性能会受影响。mongodb

相关文章
相关标签/搜索