百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

mongodb Redis HBase 分析 以及各自的使用场景

mhr18 2025-03-26 14:03 21 浏览 0 评论

MongoDB做高性能数据库,

Redis做缓存,

HBase做大数据分析。


Redis是内存型Key/Value系统,读写性能非常好,支持操作原子性,很适合用来做高速缓存。

HBase存储容量大,一个表可以容纳上亿行、上百万列,可应对超大数据量要求扩展简单的需求。

Hadoop的无缝集成,让HBase的数据可靠性和海量数据分析性能(MapReduce)值得期待。


主要还是性能差距 导致 用途不同

mongodb 更偏向保存数据,

而 redis 更偏向保持状态。

比如 facebook 用 redis 来记录用户是否已经读了某个帖子以及停留状况,当用户下拉页面时就把访问情况记录到 redis 里。

查询 mongodb 肯定比查询 redis 慢,

那么缓存还得用 redis。

另外 mongodb 非常消耗内存,用它当缓存用不划算。

redis 适合 TPS 比较高的场景(例如点赞功能)数据状态存储,

mongodb 适合海量数据场景(例如评论功能)是数据存储,两个库性能上差距也是很大的,各有优点,要参考实际情况选择使用


mongodb 和 redis 是 特快列车与高铁的区别

redis 用做缓存,

mongodb 做持久化

mongodb 数据量大了超过内存的时候要从磁盘读,速度慢。


可是数据量大了超过内存这个情况 redis 更没法用了啊,

要保证数据完全在内存中那就只能做群集分担,

要么就是 redis 根据设定规则淘汰一些键。

而 mongodb 也可以方便地做群集。


进一步我产生了 mongodb 是不是可以代替 redis 的想法?

用 mongodb 我可以不那么担心内存,就算数据量超过内存大小了他至少会自动处理,虽然性能变差了至少还能用,给我优化系统留一个缓冲时间。

而用 redis 我要时时刻刻担心并监控内存使用情况,生怕一不留神内存爆了。


mongodb

mongodb中有三元素:数据库,集合,文档,

其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。

MongoDB是对传统关系型数据库的补充, 但是 MongoDB 不支持事务,因此对事务性有要求的程序不建议使用 MongoDB。

此外,MongoDB 也不支持表联合查询, 而这个是关系型数据库擅长的事情。

MongoDB 总结:

  1. 从目前阿里云 MongoDB 云数据库上的用户看,MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例。
  2. 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
  3. 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  4. 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
  5. 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
  6. 视频直播,使用 MongoDB 存储用户信息、礼物信息等




下载MongoDB安装包:
http://www.mongodb.org/downloads

mongodb服务器端安装和启动步骤:

1. 在磁盘创建文件夹

d:\mongodb

d:\mongodb\db 数据库目录

d:\mongodb\log 日志存放目录

d:\mongodb\log\mongoDB.log

2. 解压mongoDB安装包,并将解压后的bin文件夹拷贝到mongodb中

3. 启动mongoDB服务

在bin目录中有许多命令,启动数据库只需要两个命令mongod和mongo:

mongod:是mongoDB数据库进程本身

mongo:是命令行shell客户端

启动mongoDB进程:D:\mongodb\bin>mongod --dbpath=D:\mongodb\db


执行到这里,mongoDB服务器已经启动了,接下来就可以在客户端操作数据库了。但是,当mongod.exe启动程序被关闭后,mongoDB客户端就无法连接数据库。

为了避免每次都要手动启动数据库,可以将mongDB安装为windows服务,让该服务随windows启动而开启,这样,我们在使用mongoDB的时候直接连接数据库就可以了,省去了手动开启服务的繁琐。将mongoDB安装为windows服务并开启的命令:

开启服务:

总结:mongoDB无需安装,只需要创造服务器的启动环境即可:需要的是bin文件夹(存放的是mongoDB的一些命令)、指定数据库的位置和日志位置、建立一个日志文件。有了这些,mongoDB服务器端就可以启动了。

mongoDB服务器启动后,就可以通过mongoDB客户端操作数据库了。mongoDB客户端包括:

1. shell控制台

2. Java、PHP等驱动程序

3. mongoVUE是一个可视化工具,相当于我们熟悉的plSql,不过也可以执行对数据库的操作

通过shell客户端,我们可以很方便的练习mongoDB的curd操作,不过,在开发中,还是通过相应的驱动程序由编程语言来操作。

相关推荐

使用 Docker 部署 Java 项目(通俗易懂)

前言:搜索镜像的网站(推荐):DockerDocs1、下载与配置Docker1.1docker下载(这里使用的是Ubuntu,Centos命令可能有不同)以下命令,默认不是root用户操作,...

Spring Boot 3.3.5 + CRaC:从冷启动到秒级响应的架构实践与踩坑实录

去年,我们团队负责的电商订单系统因扩容需求需在10分钟内启动200个Pod实例。当运维组按下扩容按钮时,传统SpringBoot应用的冷启动耗时(平均8.7秒)直接导致流量洪峰期出现30%的请求超时...

《github精选系列》——SpringBoot 全家桶

1简单总结1SpringBoot全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springbo...

Nacos简介—1.Nacos使用简介

大纲1.Nacos的在服务注册中心+配置中心中的应用2.Nacos2.x最新版本下载与目录结构3.Nacos2.x的数据库存储与日志存储4.Nacos2.x服务端的startup.sh启动脚...

spring-ai ollama小试牛刀

序本文主要展示下spring-aiollama的使用示例pom.xml<dependency><groupId>org.springframework.ai<...

SpringCloud系列——10Spring Cloud Gateway网关

学习目标Gateway是什么?它有什么作用?Gateway中的断言使用Gateway中的过滤器使用Gateway中的路由使用第1章网关1.1网关的概念简单来说,网关就是一个网络连接到另外一个网络的...

Spring Boot 自动装配原理剖析

前言在这瞬息万变的技术领域,比了解技术的使用方法更重要的是了解其原理及应用背景。以往我们使用SpringMVC来构建一个项目需要很多基础操作:添加很多jar,配置web.xml,配置Spr...

疯了!Spring 再官宣惊天大漏洞

Spring官宣高危漏洞大家好,我是栈长。前几天爆出来的Spring漏洞,刚修复完又来?今天愚人节来了,这是和大家开玩笑吗?不是的,我也是猝不及防!这个玩笑也开的太大了!!你之前看到的这个漏洞已...

「架构师必备」基于SpringCloud的SaaS型微服务脚手架

简介基于SpringCloud(Hoxton.SR1)+SpringBoot(2.2.4.RELEASE)的SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、...

SpringCloud分布式框架&amp;分布式事务&amp;分布式锁

总结本文承接上一篇SpringCloud分布式框架实践之后,进一步实践分布式事务与分布式锁,其中分布式事务主要是基于Seata的AT模式进行强一致性,基于RocketMQ事务消息进行最终一致性,分布式...

SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌

SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...

开发好物推荐12之分布式锁redisson-sb

前言springboot开发现在基本都是分布式环境,分布式环境下分布式锁的使用必不可少,主流分布式锁主要包括数据库锁,redis锁,还有zookepper实现的分布式锁,其中最实用的还是Redis分...

拥抱Kubernetes,再见了Spring Cloud

相信很多开发者在熟悉微服务工作后,才发现:以为用SpringCloud已经成功打造了微服务架构帝国,殊不知引入了k8s后,却和CloudNative的生态发展脱轨。从2013年的...

Zabbix/J监控框架和Spring框架的整合方法

Zabbix/J是一个Java版本的系统监控框架,它可以完美地兼容于Zabbix监控系统,使得开发、运维等技术人员能够对整个业务系统的基础设施、应用软件/中间件和业务逻辑进行全方位的分层监控。Spri...

SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架

作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...

取消回复欢迎 发表评论: