MongoDB能取代MySQL或者Redis能取代memcached么

mongodb和memcached不是一个范畴内的东西。

mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。

mongodb和memcached不存在谁替换谁的问题。和memcached更为接近的是redis。

它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据> 类型有限,查询功能不强,一般用作缓存。

一般现在的项目中,用redis来替代memcached。

. . .

Redis相比memcached:

  • redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。
  • redis具备binlog功能,可以将所有操作写入日志,当redis出现故障,可依照binlog进行数据恢复。
  • redis支持virtual memory,可以限定内存使用大小,当数据超过阈值,则通过类似LRU的算法把内存中的最不常用数据保存到硬盘的页面文件中。
  • redis原生支持的数据类型更多,使用的想象空间更大。

而monggodb:

  • mongodb 是文档数据库,用于方便懒人替代mysql等关系数据库的。MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
  • 不过mongodb在内存足够的情况下读写性能不错,大部分应用可以省去cache这一层了。
  • 根据业务场景, 懒人可以使用MongoDB来取代MySQL+memcached,.