当前位置: 首页 > news >正文

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的用户名就已经创建好了.

        

相关文章:

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

简单明了说明MySQL,ES,MongoDB的各自特点,应用场景,以及MongoDB如何使用的第一章节. 一. SQL与NoSQL SQL被称为结构化查询语言.是传统意义上的数据库,数据之间存在很明确的关联关系,例如主外键关联,这种结构可以确保数据的完整性(数据没有缺失并且正确).但是正因为这种严密的结…...

leetcode每日一题_2682.找出转圈游戏输家

2682.找出转圈游戏输家 题目: n 个朋友在玩游戏。这些朋友坐成一个圈&#xff0c;按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i 1) 个朋友的位置&#xff08;1 < i < n&#xff09;&#xff0c;而从第 n 个朋友的位置开始顺时针移…...

OpenCV之薄板样条插值(ThinPlateSpline)

官方文档&#xff1a;OpenCV: cv::ThinPlateSplineShapeTransformer Class Reference 使用方法&#xff1a; 头文件&#xff1a;#include <opencv2/shape/shape_transformer.hpp> &#xff08;1&#xff09;点匹配 一般根据有多少个样本&#xff08;或者点&#xff09;…...

034_小驰私房菜_[问题复盘] Qcom平台,某些三方相机拍照旋转90度

全网最具价值的Android Camera开发学习系列资料~ 作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~ 欢迎订阅,相信能扩展你的知识面,提升个人能力~ 【一、问题】 某些三方相机,预览正常,拍照旋转90度 【二、问题排查】 1 ) HAL这边Jpeg编码数据在哪个地方…...

【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总

【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总 TI编译器分类 在CCS按照目录下 有个名为${CG_TOOL_ROOT}的目录 其下就是当前工程的编译器 存放目录为&#xff1a; C:\ti\ccs1240\ccs\tools\compiler按类型分为五种&#xff1a; ti-cgt-arm…...

深入探索Java中的File类与IO操作:从路径到文件的一切

文章目录 1. File类的作用与构造方法2. File类常用方法&#xff1a;获取、判断和创建2.1 获取功能方法2.2 判断功能方法2.3 创建和删除功能方法2.4 目录的遍历方法 3. 递归&#xff1a;探索更深的层次代码示例&#xff1a;递归遍历文件夹 结论 &#x1f389;欢迎来到Java学习路…...

Python 处理 Excel 表格的 14 个常用操作

目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…...

PyQt有哪些主要组件?

这是一个非常强大的跨平台GUI库&#xff0c;可以让你用Python语言创建美观且功能强大的桌面应用程序。让我们先来了解一下它的主要组件。 首先&#xff0c;我们要介绍的是窗口。窗口是PyQt应用程序的基本元素&#xff0c;所有的GUI元素都放置在窗口中。你可以创建主窗口、模态…...

力推C语言必会题目终章(完结篇)

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 今天是分享C语言必会题目最终章&#xff0c;全部都是硬货&#xff0c;大家都坐好准备开始喽&#xff01;&#xff01;&#xff01; 编写一个函数&#xff0c;计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内…...

CS5263替代停产IT6561连接DP转HDMI音视频转换器ASL 集睿致远CS5263设计电路原理图

ASL集睿致远CS5263是一款DP1.4到HDMI2.0b转换器芯片&#xff0c;设计用于将DP1.4源连接到HDMI2.0b接收器。 CS5263功能特性&#xff1a; DP接口包括4条主通道、辅助通道和HPD信号。接收器支持每通道5.4Gbps&#xff08;HBR2&#xff09;数据速率。DP接收机结合了HDCP1.4和HDCP…...

数据分析 | 随机森林如何确定参数空间的搜索范围

1. 随机森林超参数 极其重要的三个超参数是必须要调整的&#xff0c;一般再加上两到三个其他超参数进行优化即可。 2. 学习曲线确定n_estimators搜索范围 首先导入必要的库&#xff0c;使用sklearn自带的房价预测数据集&#xff1a; import numpy as np import pandas as pd f…...

5G+AI数字化智能工厂建设解决方案PPT

导读&#xff1a;原文《5GAI数字化智能工厂建设解决方案》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。数字化智能工厂定义 智能基础架构协同框架 - 端、边、云、网…...

Windows配置编译ffmpeg +音视频地址

Windows配置MinGW及MinGW-make使用实例 https://blog.csdn.net/Henoiiy/article/details/122550618 ffmpeg安装遇错&#xff1a;nasm/yasm not found or too old. Use --disable-x86asm for a crippled build. https://blog.csdn.net/sayyy/article/details/124337834https://…...

C语言 常用工具型API --------system()

函数名&#xff1a; system&#xff08;&#xff09; 用 法&#xff1a; int system(char *command); 原理&#xff1a; 加载一个子进程去执行指定的程序&#xff0c;而想Linux命令基本都是一个单独的进程实现的&#xff0c;所以你所掌握的Linux命令越多&#xff0c;该函数功…...

车规级半导体分类(汽车芯片介绍)

车规级半导体&#xff0c;也被称为“汽车芯片”&#xff0c;主要应用于车辆控制装置、车载监控系统和车载电子控制装置等领域。这些半导体器件主要分布在车体控制模块上&#xff0c;以及车载信息娱乐系统方面&#xff0c;包括动力传动综合控制系统、主动安全系统和高级辅助驾驶…...

opencv图像轮廓检测

效果展示&#xff1a; 代码部分&#xff1a; import cv2 import numpy as np img cv2.imread(C:/Users/ibe/Desktop/picture.PNG,cv2.IMREAD_UNCHANGED) # 类型转换 img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 结构元 kernel cv2.getStructuringElement(cv2.MORPH_REC…...

诚迈科技荣膺小米“最佳供应商奖”

近日&#xff0c;诚迈科技受邀参加小米战略合作伙伴HBR总结会。诚迈科技以尽职尽责的合作态度、精益求精的交付质量荣膺小米公司颁发的最佳供应商奖&#xff0c;其性能测试团队荣获优秀团队奖。 诚迈科技与小米在手机终端方向一直保持着密切的合作关系&#xff0c;涉及系统框架…...

分布式 - 消息队列Kafka:Kafka 消费者的消费位移

文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而…...

H3C QoS打标签和限速配置案例

EF&#xff1a;快速转发 AF&#xff1a;确保转发 CS&#xff1a;给各种协议用的 BE&#xff1a;默认标记(尽力而为) VSR-88-2 出口路由配置&#xff1a; [H3C]dis current-configuration version 7.1.075, ESS 8305 vlan 1 traffic classifier vlan10 operator and if-match a…...

带curl的docker镜像image

带curl的docker镜像&#xff0c;便于k8s中查找问题&#xff0c;确认容器内部是否可用。 用于测试网络的工具&#xff0c;带有curl nslookup等命令 镜像名docker.io/appropriate/curl 测试命令docker run --rm -it docker.io/appropriate/curl /bin/sh 已测试可用 用于测试网…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...