MongoDB和Redis哪个好?MongoDB是由C++语言编写的基于分布式文件存储的开源数据库系统;Redis是使用ANSI C语言编写的一个基于内存、可持久化、键值对模式的NoSQL数据库,也可用作缓存。下面来看下MongoDB和Redis的区别有哪些。
MongoDB和Redis的区别对比:
1、数据结构
Redis支持多种数据结构,如string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)等。支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
MongoDB支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。查询指令使用 JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
2、应用场景
Redis典型的应用场景包括:缓存、排行榜、计数器、社交网络、消息队列等,适用于数据量较小的更性能操作和运算上。MongoDB主要解决海量数据的访问效率问题,多应用于大数据、内容管理系统、移动端Apps、数据管理等。
3、数据一致性和数据分析
Redis事务支持比较弱,只能保证事务中的每个操作连续执行;mongoDB虽不支持事务,但内置了数据分析的功能(mapreduce)。
4、内存管理
Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。MongoDB数据会优先存于内存,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。需要注意的是Redis和mongoDB特别消耗内存,一般不建议将它们和别的服务部署在同一台服务器上。