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

待学习--中间件

MongoDB

MySQL与MongoDB对比:

MySQL的行列、表结构;MongoDB的文档Document、collection集合结构。
MongoDB的一个文档中,也存在主键ID构建的索引。
MySQL是一个读写数据表行列的服务进程,MongoDB是用于读写集合文档的服务进程。
MongoDB可以看作是一个数据结构灵活的MySQL。
在这里插入图片描述

  • database:数据库,与MySQL的database类似;
  • collection:数据集合,相当于 MySQL 的 table;
  • document:数据记录行,相当于 MySQL 的 row,但与mysql等关系型数据库表不同,MongoDB是以key,value形式存储的;
  • field:数据域,相当于 MySQL 的 column;
  • _id:MongoDB中存储的文档必须有一个_id键,默认创建一个ObjectId对象。ObjectId类似于唯一主键,占用12bytes【Unix时间戳(四个字节)、机器识别码(三个字节)、进程pid(两个字节)、随机数(三个字节)】,可以很快生成和排序。

MongoDB是什么?

MongoDB是一个高性能、开源且无模式的分布式NoSQL数据库,在很多场景下可以代替传统的关系型数据库。MongoDB使用C++编写,不支持SQL,但自己有着强大的语法功能。

它使用BSON(Binary Serialized Document Format)作为自己的数据存储和传输格式,该格式是一种类似于JSON的二进制序列化文档,支持嵌套对象和数组。

在这里插入图片描述

BSON 编码是什么?

JSON + Binary ==> BSON
在这里插入图片描述
将一个个BSON文档组成的集合写入磁盘中***.wt文件中。
在这里插入图片描述

变种B+树索引

COW写时复制技术,保证高并发读写性能。
在这里插入图片描述

缓存策略(Cache + LRU淘汰)

持久化保障:Journal写前日志 + Checkpoint机制

WiredTiger 是什么?和Server层架构的关系

存储引擎的定位与核心功能接口

单机MongoDB的本质,对比MySQL架构的相似性

高扩展性设计:分片集群
分片(Shard)数据切分逻辑

路由服务(mongos)与配置中心(Config Server)是什么

副本集Replica Set是什么?

分布式MongoDB集群是什么

命令释义
show dbs查看所有数据库
use 数据库名称切换数据库,如果数据库不存在则创建
db查看当前所在数据库
db.stats()查看当前数据库详情
show collections查看数据库下的所有集合
db.createCollection(“user”)创建一个名为user的集合
db.集合名称.insert({“name”:“张三”,“age”:20}))向集合中插入一条key:value格式的数据
db.集合名称.remove({删除条件})从集合中删除符合条件的数据
db.集合名称.find({条件})条件查询数据
db.集合名称.findOne()返回第一条数据
db.集合名称.count()统计集合中的总数
db.集合名称.find().count()根据条件统计集合中的总数
db.集合名称.find().sort({age:1})根据字段排序,1:升序,-1:降序
db.集合名称.find().skip(2).limit(3)分页查询,skip跳过第几条,limit查询多少条
db.集合名称.find({'age':{$gt:25}})、db.集合名称.find({'age':{$gte:25}})集合 age > 25、集合 age >= 25
db.集合名称.find({'age':{$lt:25}})、db.集合名称.find({'age':{$lte:25}})集合 age < 25、集合 age <= 25
db.集合名称.find({'age':{$ne:25}})集合 age != 25
db.集合名称.find({'age':{$eq:25}})集合 age = 25
db.集合名称.find({'age':{$in:[23,27]}})、db.集合名称.find({'age':{$nin:[23,27]}})集合 age in (23,27) 、集合 age not in (25,27,23)
db.集合名称.stats()查看索引相关情况
db.集合名称.ensureIndex({key:1})创建普通索引,key就是要加索引的字段
db.集合名称.find({key:value}).explain()查看查询计划
db.集合名称.dropIndex({key:1})删除索引
db.集合名称.ensureIndex({key:1},{unique:true})创建唯一索引

RabbitMQ

ES

Hadoop

Nignx

Redis

http://www.dtcms.com/a/507313.html

相关文章:

  • Avalonia vs UniApp 全面对比分析
  • 策略模式优化多重判断
  • ios云打包证书申请不需要苹果电脑也是可以的
  • UniApp USB存储设备U盘操作、读写原生插件
  • 邢台 建网站中国机械设备制造网
  • app网站开发河 又最新新闻热点事件300字
  • ZooKeeper集群:分布式系统的核心守护者
  • 网鼎杯 2020 朱雀组
  • 开发避坑指南(63):解决SQL排序子句列名歧义异常:Column ‘xxx‘ is ambiguous
  • 【C + +】红黑树:全面剖析与深度学习
  • 数据结构(顺序表和链表)
  • C# 基础——装箱和拆箱
  • 分享网站友情链接营销
  • windows中用wsl使用cuda
  • 运维逆袭志·第3期 | 数据孤岛破局之战 :跨业务分析的难题攻坚
  • 《道德经》第二十一章
  • 第 14 章:Spring AI Alibaba — Nacos3实现动态Prompt
  • TableTime:将时序分类重构为表格理解任务,更有效对齐LLM语义空间
  • Java的main方法语法
  • 【Linux】 层层递进,抽丝剥茧:调度队列、命令行参数、环境变量
  • 火电厂VR安全培训系统怎么样?VR安全培训告别传统培训痛点!
  • 网站建设有哪些工作儿童教育网站源码
  • 开题报告之基于SpringBoot框架的路面故障信息上报系统设计与实现
  • rabbitmq服务端消费端实例(direct和fanout模式)
  • 橙色车队上的安全密码:嘉顺达蓝海的危险品运输专业之道
  • FPGA高频面试问题整理—附答案
  • html框架做网站创立个网站专业卖手机
  • 【设计模式】单例模式(Singleton)
  • 2025.10.18 TRAE HACKATHON WUHAN 黑客马拉松在武汉隆重举行[特殊字符]
  • php5 mysql网站开发实例精讲东莞保安公司联系电话