待学习--中间件

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

相关推荐
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 天前
嵌入式学习路线
学习
SunnyRivers6 天前
LangChain中间件详解
中间件·langchain
毛小茛6 天前
计算机系统概论——校验码
学习
babe小鑫6 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习
im_AMBER6 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode