MongoDB:MySQL,Redis,ES,MongoDB的应用场景

这篇具有很好参考价值的文章主要介绍了MongoDB:MySQL,Redis,ES,MongoDB的应用场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单明了说明MySQL,ES,MongoDB的各自特点,应用场景,以及MongoDB如何使用的第一章节.

一. SQL与NoSQL

        SQL被称为结构化查询语言.是传统意义上的数据库,数据之间存在很明确的关联关系,例如主外键关联,这种结构可以确保数据的完整性(数据没有缺失并且正确).但是正因为这种严密的结构使得扩展起来不方便,而且系统越膨胀,关系越复杂,如果遇到系统升级,数据量增加,数据表增加,程序员就该头痛了.

        如果把SQL称为正规化设计,那么NoSQL是反正规化设计,其中的数据没有关联,更容易扩展,数据模型更加的灵活,你甚至可以随时修改数据存储的结构.这样有违规范的设计,带来了数据扩充的便利性,在信息飞速发展的互联网时代,这真是每个程序员所需要的,但是由于这种缺少关联和规则,对数据的完整性就是它的一大缺点,正所谓有利有弊.

二.MySQL,Redis,ES,MongDB

1.MySQL应用场景

MySQL是典型的SQL代表,在数据结构比较固定,对数据完整性有严格要求的地方应该使用MySQL,例如商品库存,用户积分,用户个人信息等地方.

2.Redis应用场景

        前面提到的集中数据库,除了MySQL之外,其它的都属于NoSQL.

        Redis是键值对存储系统,通过Key进行数据的操作,通常是将数据存储在内存中,当然也可以做持久化,但是通常也没有太多必要,用来做数据持久化的数据库很多,而且比它好用,所以Reids通常用来做数据的缓存.因为是通过key进行数据的操作,并且存储在内存中,所以操作速度非常快,但是你也别往里面存很多数据,并且数据也要设置一个过期时间.

        Redis通常用来存储用户登录信息,例如token,根据明确id值查询的并且可能再同一个时间段内会被反复读取的数据.

3.ES应用场景

        ES是分布式搜索和分析引擎,大概类似于百度搜索,淘宝搜索一类的,它的作用是对大量数据进行快速检索,并且根据要求对检索出来的数据进行评分,你可以按照评分或者其它规则对其进行排序,并且它的数据存储采用主分片,父分片的形式.有利于做大数据的搜索功能.并且可以对数据进行聚合等操作.

        ES可以用于做一些低质量,大数据记录的检索功能,所谓低质量就是这些数据并不是要求很严密的或者说实时的,ES数据被称为准实时,也就是离实时数据还有不少差距.类似于信息检索,用户日志检索,商品检索数据可以放在ES中.

4.MongoDB以及应用场景

        MongoDB是本篇文章介绍的重点,让我多啰嗦几句.

        MongoDB是NoSQL中的文档形数据库,采用文档的形式存储数据,也就是将单个实体的所有数据都存储在文档中,而文档又存在集合中.MongoDB是半结构化的非关系型数据库,相当于是在NoSQL中混入了一个不坚定的叛徒.在MongoDB中有以下概念.这里只介绍了几个特殊之处.

       1.DataBase:不同与另外集中NoSQL,MongoDB有数据库的概念;大概等用于mysql中的数据库概念.

        2.集合:MongoDB是面向集合Collection进行存储的,这个相当于MySQL中的数据表;

        3.文档:Document是MongoDB存储数据的基本单元,相当于MySQL中的一个实体(也就是一行数据),MongoDB中的文档形式是一种叫做BSON的文本.

        4.MongoDB中也有MySQL中的视图,索引,存储过程,用户,字段的概念.字段相当于数据表的列,但是这个列可以弹性的增加或者减少.

        就是这样一个SQL与NoSQL结合起来的怪胎确实目前做系统开发经常用到的一种数据库,因为在实际应用中它的优点是其他数据库所不具备的.

2.4.1 MongoDB的文档

        MongoDB的数据是已文档的形式存储的,而文档是已BSON格式存储的,BSON是以JSON为基础经过改良好的一种文本格式,使用JSON的基本格式(例如:键值对,{},[]等),但是引入了新的数据类型,例如日期ObjectId等.但是BSON会占用更大的空间,以此来换取更快的查询速度,典型的以空间换取时间模式.

 2.4.2 MongoDB的特征

        SQL具有ACID(原子性,一致性,隔离性和持久性),NoSQL具有BASE(基本可用性,可伸缩性,最终一致性),而MongoDB在NoSQL的基础上增加了原子性和事务.

2.4.3 MongoDB的应用场景

        鉴于MongoDB的这些特性,它可以用来处理大量的低价值数据,并且对数据处理性能要求比较高,而且还可能存在数据结构需要高度的伸缩性.

        通俗来说,就是处理一些数据量多,而且数据相关度不高,不存在需要很高的准确性(例如实时的库存),数据格式可能会有变化,并且还对数据的操作要求响应比较快.那么哪些场景符合这些特征了?

        例如:用户评论,评分,商品详情,这类信息.

三. MongoDB的安装

3.1 安装MogoDB Server

这个比较简单,下载社区版,直接安装,没有什么特别需要注意的地方.

http://MongoDB 社区版

3.2 下载  MogoDB Shell

MogoDB Shell可以使用命令操作MongoDB,下载之后直接可以用,建议放在MongoDB安装文件夹里面,以免找不到.

MongoDB Shell

3.3 使用Navicat Premium连接数据库

和连接MySQL差不多,用Navicat操作MongoDB比较方便.

四.创建MongoDB的登录用户

        在下载的MongoDB Shell中找到 mongosh-1.10.4\bin\mongosh.exe 文件,双击运行.显示一个DOS窗口,打开后敲回车(使用默认连接方式).输入以下命令:

use admin

连接到admin数据库,这个数据库可以让你创建用户.然后再输入下面的命令:

db.createUser({user:"<用户名>",pwd:"<密码>",roles:["root"]})

输入的时候替换<>的内容,包括<>.这样就可以创建用户名和密码了.

创建用户名和密码之后,还需要修改一个配置.打开

C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg 这个文件,并且新增下面的配置:

#security:
security:
 authorization: enabled

  好了,MongoDB的用户名就已经创建好了.

        文章来源地址https://www.toymoban.com/news/detail-652534.html

到了这里,关于MongoDB:MySQL,Redis,ES,MongoDB的应用场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java初中级面试题(SSM+Mysql+微服务(SpringCloud+Dubbo)+消息队列(RocketMQ)+缓存(Redis+MongoDB)+设计模式+搜索引擎(ES)+JVM

    目录 基础篇 一、Get 和 Post 的区别 二、Java 多态的具体体现 三、StringBuffer StringBuilder String 区别 四、==和 equals 区别 五、重写 equals 需要重写 hashCode 吗 六、java 的基本数据类型 七、List, Set, Collection, Collections   八、ArrayList 和 LinedList 区别 九、HashMap 和 Hashtable 区别 十、Forward

    2023年04月20日
    浏览(121)
  • MongoDB是什么、有哪些优势、对比mysql,es、docker安装

    MongoDB是面向文档的NoSQL数据库(是一个介于关系数据库和非关系数据库之间的产品),用于大量数据存储的分布式文件存储型数据库。基于灵活的 json文档模型(BSON) ,非常适合敏捷式快速开发。 具有高可用,高水平扩展能力,处理海量、高并发的数据应用时非常有优势 。

    2024年02月11日
    浏览(43)
  • Docker一键安装个人基础开发环境-MySQL、Redis、MongoDB

    Docker Compose 在个人开发环境中,使用 Docker Compose 可以极大地简化和优化应用程序的部署和管理过程。 Docker Compose 的配置文件通常采用 YAML 格式,使其易于阅读和编写。我们可以在配置文件中指定所需的容器镜像、端口映射、环境变量、数据卷挂载等配置选项,以及容器之间

    2024年02月11日
    浏览(36)
  • MySQL-Redis数据类型操作和MongoDB基本操作

    (1) 设置键值: (2) 读取键值: (3) 数值类型自增1: (4) 数值类型自减1: (5) 查看值的长度: (1)对列表city插入元素:Shanghai Suzhou Hangzhou (2)将列表city里的头部的元素移除 (3)将name列表的尾部元素移除到number列表的头部 (4) 对一个已存在的列表插入新元素

    2024年02月16日
    浏览(44)
  • 一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统

    本文分享自天翼云开发者社区《一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统》,作者:l****n 核心流程如下:   核心逻辑说明: MySQL Binlog解析 : 首先,从MySQL的二进制日志(Binlog)中解析出表名。这一步骤非常关键,因为我们只关注特定表的数据变更。 进一步,我

    2024年02月05日
    浏览(45)
  • 全链路压测时动态路由数据源MySQL、MongoDB、Redis

    目录 一、全链路压测 二、动态路由Mysql 1. 参数配置application-localDynamic.yml 2. 加载配置参数DynamicDataSourceProperties.java 3. 动态数据源DynamicDataSource.java 4. 动态数据源供应DynamicDataSourceProvider.java 5. 动态数据源bean 6. 动态数据源上下文DynamicDataSourceContextHolder.java 7. 动态数据源过滤器

    2023年04月14日
    浏览(32)
  • 使用Docker搭建开发环境:MySQL、Redis、MongoDB和Selenium Grid

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持Docker的平台上。在本篇博客中,我们将详细介绍如何用Docker安装MySQL、Redis、MongoDB和Selenium Grid,并给出相应的代码案例。 在开始之前,确保您的系统上安

    2024年02月19日
    浏览(40)
  • ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx

    ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx) 1.1 安装包列表 序号 名称 1 jdk-8u181-linux-x64.tar.gz 1.2 安装方式 2.1 安装包列表 序号 名称 1 net-tools_1.60+git20181103.0eebece-1ubuntu5_amd64.deb 2 unzip_6.0-20ubuntu1.1_amd64.deb 3 g++11.3.zip 4 gcc11.3.zip 5 make_4.3-4.1build1_amd64.deb 2.2 安装方式 3.1 安装包列表

    2024年02月09日
    浏览(47)
  • Docker安装常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等

    首先安装docker 依赖库 添加docker ce的软件源信息,自行选择,可添加可不添加,如果不是阿里云或者腾讯云的,请还是添加一下吧 安装docker docker -v --查看docker版本 docker images --查看当前docker运行 sudo systemctl start docker --启动docker 在虚拟机里边 docker images --有时候权限不足 我们

    2024年02月11日
    浏览(60)
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

    可以到 https://hub.docker.com/ 去搜索node镜像 , 然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm,以及对应的依赖,启动node目录下对应的项目,然后通过浏

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包