项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB。

最近又想起为什么用MongoDB,就查阅一下,汇总汇总:

之前也用过redis,当时是用来存储一些热数据,量也不大,但是操作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。

就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,

Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;

MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。

点击查看:MongoDB语法与现有关系型数据库SQL语法比较

Mongodb与Redis应用指标对比

MongoDB和Redis都是NoSQL,采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于
二者在内存映射的处理过程,持久化的处理方法不同。MongoDB建议集群部署,更多的考虑到集群方案,Redis
更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

指标  MongoDB(v2.4.9)  Redis(v2.4.17)  比较说明
实现语言  C++ C/C++ -
协议 BSON、自定义二进制 类Telnet -
性能 依赖内存,TPS较高 依赖内存,TPS非常高 Redis优于MongoDB
可操作性 丰富的数据表达、索引;最类似于关系数据库,支持丰富的查询语言 数据丰富,较少的IO MongoDB优于Redis
内存及存储 适合大数据量存储,依赖系统虚拟内存管理,采用镜像文件存储;内存占有率比较高,官方建议独立部署在64位系统(32位有最大2.5G文件限制,64位没有改限制) Redis2.0后增加虚拟内存特性,突破物理内存限制;数据可以设置时效性,类似于memcache 不同的应用角度看,各有优势
可用性 支持master-slave,replicaset(内部采用paxos选举算法,自动故障恢复),auto sharding机制,对客户端屏蔽了故障转移和切分机制 依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制;不支持自动sharding,需要依赖程序设定一致hash机制 MongoDB优于Redis;单点问题上,MongoDB应用简单,相对用户透明,Redis比较复杂,需要客户端主动解决。(MongoDB 一般会使用replica sets和sharding功能结合,replica sets侧重高可用性及高可靠性,而sharding侧重于性能、易扩展)
可靠性 从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性 依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能 MongoDB优于Redis
一致性 不支持事物,靠客户端自身保证 支持事物,比较弱,仅能保证事物中的操作按顺序执行 Redis优于MongoDB
数据分析 内置数据分析功能(mapreduce) 不支持 MongoDB优于Redis
应用场景 海量数据的访问效率提升 较小数据量的性能及运算 MongoDB优于Redis

最新文章

  1. java 线程 障碍器
  2. 更新引用google的cdn外部jQuery核心库JS文件
  3. 【Jenkins】Windows下安装&访问jenkins
  4. Spring基础——在Spring Config 文件中配置 Bean
  5. 【温故而知新-Javascript】使用事件
  6. 互联网产品设计常用文档类型-BRD、MRD、PRD、FSD (
  7. [CSS][转载]内层div的margin-top影响外层div
  8. 消息队列msmq
  9. PLSQL 看连接数据库的用户
  10. 团队作业8----第二次项目冲刺(Beta阶段) 第二天
  11. TCP/IP(五)传输层(TCP的三次握手和四次挥手)
  12. Elasticsearch【快速入门】
  13. Windows Java安装
  14. Apollo 2 如何支持 @Value 注解自动更新
  15. JavaScript之函数式编程思想初探
  16. 5.STM32通用定时器TIM3中断
  17. InnoDB存储引擎介绍-(2)redo和undo学习
  18. easyui form 提交问题,纠结了很久,有点诡异
  19. Java错误提示:Syntax error, insert "}" to complete Block
  20. 2019.03.26 读书笔记 关于 invoke与begininvoke

热门文章

  1. Soot生成代码控制流图
  2. pytest进阶之conftest.py
  3. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes
  4. 聊聊Unity2018的LWRP和混合光照
  5. Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器
  6. MySQL中的自适应哈希索引
  7. Java集合框架详解(全)
  8. 每日分享!~ JavaScript中面试基础--1,数组检测的方式 2.传统事件绑定和W3C标准绑定事件的区别~
  9. CMake安装grpc生成gRPCTargets.cmake文件
  10. MacBook IDEA激活码(附视频)