MongoDB 基础

一、MongoDB 基础概念

1. 什么是 MongoDB

  • MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储,使用 BSON 格式。
  • 设计理念是应对大数据量1、高性能和灵活性需求。
  • 数据组织方式:数据库→2集合→文档,其中集合类似于关系型数据库的表,文档类似于行。

2. 主要特点

3456- 文档导向存储:以 JSON-like 格式存储,数据结构灵活。

  • 索引优化查询:7可对任意属性创建索引,提升查询效率。
  • *数据镜像与扩展性8*:通过副本集实现数据冗余和高可用。
  • 水平扩展与分片9:利用分片技术将数据分布到多个节点。
  • 强大的查询语言10:支持复杂查询表达式,包括内嵌对象和数组查询。
  • 灵活的数据更新11:使用 update () 命令可替换整个文档或更新指定字段。
  • MapReduce1213批量处理:用于大规模数据处理和聚合操作,Map 和 Reduce 函数用 JavaScript 编写。
  • GridFS 大文件1415存储:存储和检索大于 BSON 文档大小限制的文件。
  • 多语言支持:支16持 RUBY、PYTHON、JAVA 等多种编程语言。

3. 核心概念对3比

SQL 术语 / 概念MongoDB 术语 / 概念解释 / 说明
databasedatabase数据库
tablecollection数据库表 / 集合
rowdocument数据记录行 / 文档
columnfield数据字段 / 域
indexindex索引
primary keyprimary key主键,MongoDB 自动将_id 字段设置为主键
table joins-表连接,MongoDB 不支持

二、MongoDB 安装与启动

1. 安装前准备

  • 安装 Linux 平台依赖包:dnf install libcurl openssl -y
  • 下载 MongoDB 安装17包并解压:tar -zxvf mongodb-linux-x86_64-rhel8-8.0.8.tgz
  • 将解压包拷贝到指定目录18:mv mongodb-linux-x86_64-rhel88-8.0.8 /usr/local/mongodb

2. 配置环境变19量

  • 将 MongoDB 可执行文件添加到 PATH 路径:
echo 'export PATH=/usr/local/mongodb/bin:$PATH' > /etc/profile
source /etc/profile

3. 创建数据库目20录

  • 数据存储目录:/var/lib/mongodb
  • 日志文件目录:/va{insert\_element\_16\_}r/log/mongodb
  • 创建目录并设置权限:
    22```bash
    mkdir -p /var/lib/mongo
    mkdir -p /var/log/mongodb
    chown whoami /var/lib/mongo
    chown whoami /var/log/mongodb
### 4. 编译安装Op{insert\_element\_18\_}enSSL11
- 安装编译工具:`dnf install -y gcc make perl`。
- 配置、编译和安装Ope{insert\_element\_19\_}nSSL:
```bash
tar xzf openssl-1.1.w.tar.gz
cd openssl-1.1.1w
./config -prefix=/opt/openssl11 --openssldir=/opt/openssl/ssl
make -j$(nproc)
make install

5. 设置 Open24SSL11 环境变量

echo 'export LD_LIBRARY_PATH=/opt/openssl11/lib:$LD_LIBRARY_PATH' | sudo tee /etc/profile.d/openssl11.sh
source /etc/profile.d/openssl11.sh

6. 启动 Mong25oDB 服务

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

启动成功后会显示子进程启动信26息。

三、MongoDB27 Shell 使用

1. 安装 MongoDB Shell

  • 解压安装包并复制 mongosh 二进制文件到 PATH 目录:
tar xzf mongosh-2.5.0-linux-x64-openssl3.tgz
cd mongosh-2.5.0-linux-x64-openssl3/bin
cp mongosh /usr/local/bin/
cp mongosh_crypt_v1.so /usr/local/lib/

2. 连接 Mong28oDB 服务器

  • 基本连接命令:mongosh --host <hostname> --port <port>
  • 默认连接本地服务器:{insert\_element\_25\_}mongosh,成功连接后会显示 MongoDB 和 mongosh 版本信息。

四、数据库管理、

 1. 查看数据库

  • 查看所有数据库:show dbs
  • 查看当前使用的数据库:31db

2. 创建数据库32

  • 使用use DATABASE_NAME命令,若数据库不存在则自动创建。
  • 示例:
use runoob
switched to db runoob

3. 删除数据库

34- 使用db.dropDatabase()方法。

  • 示例:
use myDatabase
db.dropDatabase()

4. 默认与系统数36据库

  • 默认数据库:test,未指定数据库时数据默认存储在此。
  • 系统内置数据库37:
    • admin:存储用户身份信息和全局权限。
    • config:分片38集群中存储分片元数据。
    • local:存储当39前节点的副本集状态和操作日志。

五、集合管理

 1. 查看集合

  • 使用show collectionsshow tables命令。

2. 创建集合

41- 使用db.createCollection(name, options)方法。

  • 示例:创建固定大小集合
db.createCollection("myComplexCollection", {capped: true,size: 10485760,max: 5000,validator: {$jsonSchema: {required: ["name", "email"],bsonType: "object",properties: {name: { bsonType: "string" },email: { bsonType: "string", pattern: ".+@.+" }}}},validationLevel: "strict",storageEngine: { wiredTiger: { configString: "block_compressor=zstd" } }
})

3. 重命名集合

43- 使用db.adminCommand({ renameCollection: "sourceDb.sourceCollection", to: "targetDb.targetCollection" })

4. 删除集合

44- 使用db.collection.drop()方法。

六、文档操作

 1. 插入文档

  • insertOne():插入单个文档。

    javascri{insert_element_42_}pt

    db.myCollection.insertOne({ name: "Alice", age: 25, city: "New York" })
    
  • insertMany():插入多个文档。

    javascri{insert_element_43_}pt

    db.myCollection.insertMany([{ name: "Bob", age: 30, city: "Los Angeles" },{ name: "Charlie", age: 35, city: "Chicago" }
    ])
    

2. 查询文档

  • find():查找多个文档。
    • 查找所有:db.{insert\_element\_44\_}myCollection.find()
    • 按条件查找:db.myCollection.find({ age: { $gt: 25 } })
  • findOne()49:查找单个文档。
    db.myCollection.findOne({ name: "Alice" })
    

3. 删除文档

  • deleteOne():删除单个匹配文档。
    db.myCollection.deleteOne({ name: "Alice" })
    
  • deleteMany():删除所有匹配文档。
    db.myCollection.deleteMany({ name: "Bob" })
    

4. 更新文档

  • updateOne():更新单个匹配文档。
    db.myCollection.updateOne({ name: "Alice" }, { $set: { age: 26 } })
    
  • updateMany():更新所有匹配文档。
    db.myCollection.updateMany({ age: { $lt: 30 } }, { $set: { status: "active" } })
    
  • replaceOne():替换单个匹配文档。
    db.myCollection.replaceOne({ name: "Bob" }, { name: "Bob", age: 31 })
    

七、MongoDB 备份与恢复

1. 安装备份与恢复工具

rpm -ivh mongodb-database-tools-rhel70-x86_64-100.12.0.rpm

2. 数据备份(m56ongodump)

  • 基本命令:mongodump -h dbhost -d dbname -o dbdirectory
  • 示例:备份所有数据到当57前目录下的 dump 目录
mongodump

3. 数据恢复(m58ongorestore)

  • 基本命令:mongorestore -h <hostname>:<port> -d dbname <path>
  • 示例:从默认 dump 目59录恢复数据
mongorestore

八、用户管理

1. 创建用户

db.createUser({user: "testuser",pwd: "password123",roles: [{ role: "readWrite", db: "database_name" },{ role: "dbAdmin", db: "database_name" }]
})

2. 验证用户

### 3. 启用身份验证{insert\_element\_58\_}
- 编辑配置文件`mongod.conf`,添加:
```yaml
security:authorization: "enabled"

  • 或在启动命令中添加--{insert\_element\_59\_}auth参数。

4. 使用用户登录

mongosh --host hostname --port port -u "testuser" -p "password123" --authenticationDatabase "database_name"

5. 删除用户

{insert\_element\_62\_}

九、索引管理

1. 索引基础

  • 索引作用:优化查询性能,基于集合字段创建数据结构。
  • 创建索引d{insert\_element\_0\_}b.collection.createIndex( { field: 1 }, { options } ),1 为升序,-1 为降序。
  • 唯一索引db.users.createIndex( { email: 1 }, { unique: true } ),确保字段值唯一。

2. 复合索引

  • 基于多个字段创建索引,语法:db.collection.createIndex( { field1: 1, field2: -1 } )
  • 注意:查询条件需包含索引前缀字段才能有效利用复合索引。

3. 索引查看与删除

  • 查看所有索引:db.collection.getIndexes()
  • 删除指定索引:db.collection.dropIndex( "indexName" )
  • 删除所有索引:db.collection.dropIndexes()

4. 地理空间索引

  • 用于地理位置相关查询,创建 2dsphere 索引:db.places.createIndex( { location: "2dsphere" } )
  • 查询示例:查找半径 5 公里内的地点:
db.places.find( {location: {$near: {$geometry: { type: "Point", coordinates: [116.4074, 39.9042] },$maxDistance: 5000}}
} )

十、聚合框架(Aggregation Framework)

1. 聚合管道概念

  • 通过多个阶段(stage)处理数据,每个阶段对文档进行转换。
  • 常见阶段:、group、、sort、$limit 等。

2. 基本聚合操作

  • $match:过滤文档,类似 find 的查询条件:
    db.sales.aggregate( [ { $match: { category: "electronics", price: { $gt: 100 } } } ] )
    
  • $group:分组聚合,_id 指定分组字段,可使用聚合表达式:
    db.sales.aggregate( [{ $group: { _id: "$category", totalSales: { $sum: "$price" } } }
    ] )
    
  • $project:投影字段,控制输出内容:
    db.sales.aggregate( [{ $project: { product: 1, price: 1, discount: { $multiply: [ "$price", 0.8 ] } } }
    ] )
    

3. 高级聚合操作

  • $lookup:左关联查询,类似 SQL 的 LEFT JOIN:
    db.orders.aggregate( [{$lookup: {from: "customers",localField: "customerId",foreignField: "_id",as: "customerInfo"}}
    ] )
    
  • $unwind:展开数组字段,将每个数组元素转为独立文档:
    db.products.aggregate( [ { $unwind: "$tags" } ] )
    

4. 聚合表达式

  • 数学表达式:、avg、、max。
  • 条件表达式:、ifNull、$switch。
  • 字符串表达式:、substr、$toUpper。

十一、分片集群(Sharding)

1. 分片架构组件

  • 分片节点(Shard):存储实际数据,可由副本集组成。
  • 配置服务器(Config Server):存储分片元数据(如数据分布信息)。
  • 路由节点(MongoS):客户端连接入口,负责转发请求到对应分片。

2. 分片部署步骤

  1. 启动配置服务器:mongod --configsvr --dbpath /data/config --port 27019
  2. 启动分片节点(副本集):
    mongod --shardsvr --dbpath /data/shard1 --port 27017 --replSet rs1
    mongod --shardsvr --dbpath /data/shard2 --port 27018 --replSet rs1
    
  3. 初始化副本集:rs.initiate()
  4. 启动路由节点:mongos --configdb configServerHost:27019
  5. 将分片添加到集群:sh.addShard( "rs1/host1:27017,host2:27018" )
  6. 启用分片:sh.enableSharding( "databaseName" )
  7. 设置分片键:sh.shardCollection( "databaseName.collectionName", { shardKey: 1 } )

3. 分片键选择

  • 范围分片键:如时间字段,数据按范围分布,适合时序数据。
  • 哈希分片键:如用户 ID 的哈希值,数据均匀分布,适合高并发写入。
  • 复合分片键:如 {region: 1, date: 1},结合范围和哈希优势。

十二、副本集(Replica Set)

1. 副本集架构

  • 主节点(Primary):处理所有写入操作,同步数据到从节点。
  • 从节点(Secondary):复制主节点数据,处理读请求。
  • 仲裁节点(Arbiter):不存储数据,仅参与选举决策。

2. 副本集初始化

// 连接到主节点
mongosh --port 27017
// 定义副本集配置
config = {_id: "rs0",members: [{ _id: 0, host: "server1:27017" },{ _id: 1, host: "server2:27017" },{ _id: 2, host: "server3:27017", arbiterOnly: true }]
}
// 初始化副本集
rs.initiate( config )

3. 故障转移与读偏好

  • 自动故障转移:主节点故障时,从节点通过选举产生新主节点。
  • 读偏好(Read Preference)
    • primary:只从主节点读取(默认)。
    • primaryPreferred:优先从主节点读取,不可用时从从节点。
    • secondary:只从从节点读取。
    • secondaryPreferred:优先从从节点读取,不可用时从主节点。
    • nearest:从最近的节点读取。

十三、事务管理

1. 事务特性

  • ACID 特性:MongoDB 4.0 + 支持分布式事务,确保原子性、一致性、隔离性、持久性。
  • 多文档事务:跨文档、跨集合、跨数据库的操作作为原子单元。

2. 事务使用示例

// 开始事务
const session = db.getMongo().startSession();
try {session.startTransaction();// 操作1:更新账户A余额db.accounts.updateOne({ _id: "A" },{ $inc: { balance: -100 } },{ session });// 操作2:更新账户B余额db.accounts.updateOne({ _id: "B" },{ $inc: { balance: 100 } },{ session });// 提交事务await session.commitTransaction();console.log("转账成功");
} catch (error) {// 回滚事务await session.abortTransaction();console.error("转账失败:", error);
} finally {session.endSession();
}

3. 事务注意事项

  • 事务超时时间默认 60 秒,可通过maxTransactionTimeMS参数调整。
  • 分片集群中事务需使用 MongoDB 4.2+,且配置服务器为副本集。
  • 避免长事务,减少锁竞争。

十四、存储引擎

1. WiredTiger(默认)

  • 特点:支持文档级锁、压缩、加密,性能均衡,适合大多数场景。
  • 压缩算法
    • zlib:压缩率高,CPU 消耗大。
    • snappy:压缩率低,速度快。
    • zstd:平衡压缩率和速度(默认)。
  • 配置示例:在 mongod.conf 中设置storage.wiredTiger.engineConfig.compressor = zstd

2. MMAPv1(旧版)

  • 特点:使用文件映射内存,支持表级锁,不推荐新部署。
  • 适用场景:遗留系统兼容,或需要特定功能(如稀疏集合)。

3. In-Memory

  • 特点:数据全部存储在内存,适合对响应时间要求极高的场景。
  • 注意:重启后数据丢失,需搭配持久化存储。

十五、监控与性能调优

1. 内置监控命令

  • 查看服务器状态db.serverStatus(),获取内存、CPU、IO 等指标。
  • 查看当前操作db.currentOp(),查看正在执行的命令。
  • 慢查询日志:启用慢查询日志(默认超过 100ms):

    bash

    mongod --slowms 50 --logpath /var/log/mongodb/mongod.log
    

2. 性能调优策略

  • 索引优化:为频繁查询的字段创建索引,避免全表扫描。
  • 批量操作:使用 insertMany、bulkWrite 替代单条插入,减少网络开销。
  • 连接池优化:调整驱动程序的连接池大小,默认值通常足够。
  • 内存配置:WiredTiger 存储引擎建议将 50% 物理内存分配给缓存。
  • 磁盘 IO:使用 SSD 存储数据,避免频繁写入导致磁盘瓶颈。

3. 监控工具

  • MongoDB Compass:图形化工具,查看性能指标和查询分析。
  • MongoDB Atlas:云服务自带监控仪表盘。
  • Prometheus + Grafana:通过 MongoDB Exporter 采集指标并可视化。

十六、应用场景

1. 内容管理系统

  • 灵活的数据结构适合存储博客、文章等内容,支持动态字段扩展。
  • 案例:WordPress 插件、新闻门户网站。

2. 实时数据分析

  • 聚合框架和 MapReduce 支持快速处理海量数据,如用户行为分析。
  • 案例:电商平台商品浏览统计、广告点击分析。

3. 物联网(IoT)数据存储

  • 分片集群支持海量设备数据存储,时间序列数据查询优化。
  • 案例:智能家居设备日志、工业传感器数据采集。

4. 社交网络应用

  • 文档模型适合存储用户关系、动态等复杂结构,支持高并发读写。
  • 案例:社交平台消息系统、用户资料管理。

5. 移动应用后端

  • 多语言驱动和云服务(MongoDB Atlas)简化移动应用开发。
  • 案例:移动游戏进度存储、社交 APP 用户数据。

十七、最佳实践

1. 数据模型设计

  • 嵌入 vs 引用
    • 多对一关系:嵌入子文档(如用户包含地址)。
    • 多对多关系:使用引用 + 索引(如用户与角色关联)。
  • 避免过度规范化:适当冗余字段减少查询关联。

2. 安全配置

  • 启用身份验证,分配最小权限角色。
  • 禁止公网直接访问 MongoDB 服务,使用 VPN 或防火墙限制。
  • 启用 TLS/SSL 加密通信:mongod --ssl --sslCertificateKeyFile cert.pem

3. 备份与恢复策略

  • 定期全量备份(如每天)+ 增量备份(如每小时)。
  • 测试备份恢复流程,确保数据可恢复。
  • 异地灾备,防止物理故障导致数据丢失。

4. 版本升级

  • 先在测试环境验证新版本兼容性,尤其注意废弃功能。
  • MongoDB 4.4 + 支持滚动升级,减少服务中断时间。
  • 升级前备份数据,准备回滚方案。

十八、常见问题与解决方案

1. 性能问题排查

  • 慢查询分析:使用db.currentOp()和慢查询日志定位问题查询。
  • 索引缺失:检查查询是否使用索引,explain()分析执行计划。
  • 锁竞争:查看db.serverStatus().locks,优化写入频率或分片。

2. 磁盘空间问题

  • WiredTiger 预分配:使用db.repairDatabase()回收未使用空间。
  • 删除过期数据:定期删除不再需要的历史数据,或使用 TTL 索引。
  • 分片扩容:当单个分片数据量过大时,添加新分片并重新平衡数据。

3. 副本集异常

  • 选举失败:确保多数节点可用(如 3 节点副本集至少 2 节点在线)。
  • 数据不一致:使用rs.syncFrom("primaryHost")手动同步数据。
  • 仲裁节点配置:奇数个节点或添加仲裁节点避免脑裂。

4. 事务相关问题

  • 事务超时:优化事务内操作,减少执行时间或增加maxTransactionTimeMS
  • 并发冲突:使用乐观锁(如版本号字段)或调整隔离级别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RNN:从记忆困境到序列建模革命

在自然语言处理的战场上&#xff0c;一个句子中的每个单词都承载着前文的记忆。当传统神经网络面对这种时序依赖束手无策时&#xff0c;循环神经网络&#xff08;RNN&#xff09; 以独特的循环结构开启了序列建模的新纪元。它像人类阅读般记忆上下文&#xff0c;却也因记忆衰减…

阳台光伏配套电表ADL200N-CT/D16-Wf-1

安科瑞 华楠 18706163979 引言 在“双碳”目标推动下&#xff0c;绿色能源正逐步走进日常生活。阳台光伏作为一种新型分布式发电方式&#xff0c;凭借灵活安装、高效节能的特点&#xff0c;成为城市家庭和工商业用户的新选择。安科瑞推出的ADL200N-CT/D16-Wf-1阳光光伏电表&a…

功能测试—软件的生命周期

市场需求调研 可行性研究 从企业的人力储备、技术储备、资金储备等方面出发&#xff0c;论证经济效益或者社会效益能否达到预期 项目立项 需求开发 输出&#xff1a;需求规格说明书需求评审&#xff08;需求测试&#xff09;&#xff1a;测试&#xff08;测试负责人、资深测…

PostgreSQL 日常维护

目录 前言 基本使用 1. 登录数据库 2. 数据库操作 2.1 列出库 2.2 创建库 2.3 删除库 2.4 切换库 2.5 查看库大小 3. 数据表操作 3.1 列出表 3.2 创建表 3.3 复制表 3.4 删除表 3.5 查看表结构 4. 模式操作命令 4.1 创建模式 4.2 默认模式 4.3 删除模式 4.4…

STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读

STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读 前言小贴士 通用定时器原理定时器的内部时钟源通用定时器TIM9-TIM14的对比共同点区别 TIM9-TIM14功能说明时基单元计数模式时钟选择 定时器框图理解和分析TIM10/TIM11/TIM13/TIM14输入捕获输出比较 TIM9和TIM12独立通道输入…

whttpserver:一个命令极速搭建文件上传与下载服务器

whttpserver 是一个简单的HTTP服务器&#xff0c;类似于python -m http.server&#xff0c;但增加了文件上传和编辑的功能。 1. 安装 whttpserver 模块 # 临时设置环境变量 PYTHONUTF81&#xff0c;强制 Python 使用 UTF-8 编码 set PYTHONUTF81 pip install whttpserver 2.…

【0.2 漫画操作系统原理】

🖥️ 漫画操作系统原理 🎯 学习目标:深入理解操作系统核心原理,为Java并发编程和性能优化打下坚实基础 🎪 第一章:操作系统初识篇 🤔 什么是操作系统? 想象一下,你是一个大型图书馆的馆长… 📚 没有操作系统 vs 有操作系统没有操作系统: 读者1 → 直接找书架…

第1章 C# 和 .NET 框架 笔记

第1章 C# 和 .NET 框架 1.1 在 .NET 之前 C#为在.NET框架上开发程序而设计的编程语言。 MFC&#xff08;Microsoft Foundation Class&#xff0c;微软基础类库&#xff09; 微软公司提供的一个类库&#xff0c;以 C 类的形式封装了 Windows 的 API&#xff0c;并包含一个应…

Django全栈开发实战与架构思考

一、框架选型与开发范式 作为Python生态最成熟的Web框架&#xff0c;Django的"电池全包"理念在2.3版本后得到更彻底的贯彻。项目初期通过django-admin startproject生成的脚手架已包含&#xff1a; 自动化ORM迁移系统 内置Admin后台管理界面 基于WSGI的中间件管道…

微服务--Gateway网关

1. Gateway简介 Gateway网关是微服务架构中不可或缺的组件&#xff0c;是微服务架构中的统一入口&#xff0c;它作为所有客户端请求的第一道防线&#xff0c;负责请求的路由、过滤和聚合。 Gateway核心功能 路由(Routing) 根据请求路径、Header、参数等将请求路由到不同微服…

区块链与人工智能的融合:从信任到智能的IT新引擎

在信息技术&#xff08;IT&#xff09;的飞速发展中&#xff0c;两大颠覆性技术的交汇正掀起一场革命——区块链与人工智能&#xff08;AI&#xff09;的融合。2025年&#xff0c;随着数据隐私需求的激增、去中心化应用的爆发以及企业对可信智能系统的追求&#xff0c;区块链与…

Javascript什么是原型和原型链,八股文

原型:函数都有prototype属性,称之为原型&#xff0c;也称为原型对象 原型可以放一些属性和方法&#xff0c;共享给实例对象使用 原型可以做继承 原型链:对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层一…

生日悖论理论及在哈希函数碰撞中的应用

目录 一、生日悖论&#xff08;Birthday Paradox&#xff09;介绍 二、生日悖论的数学解释 &#xff08;一&#xff09;计算所有人生日都不同的概率 数学推导 示例计算 &#xff08;二&#xff09;至少有两个人生日相同的概率 三、哈希函数碰撞与生日悖论的关系思考 &a…

探索数据的力量:Elasticsearch中指定链表字段的统计查询记录

目录 一、基本的数据结构说明 二、基本的统计记录 &#xff08;一&#xff09;统计当前索引中sellingProducts的所有类型 &#xff08;二&#xff09;检索指定文档中sellingProducts的数据总量 &#xff08;三&#xff09;检索指定文档中sellingProducts指定类型的数量统计…

细节致胜:如何重塑反向海淘用户体验

在反向海淘的激烈竞争中&#xff0c;客户体验已成为决定胜负的关键。一次流畅的购物旅程、一个贴心的服务细节&#xff0c;都可能让海外消费者成为品牌的忠实传播者。易境通代购商城系统正是以极致体验为核心&#xff0c;通过精细化服务管理&#xff0c;助力企业赢得用户口碑与…

Docker 分阶段构建

Docker 分阶段构建 Docker 分阶段构建&#xff08;Multi-stage Build&#xff09;是一种高效的镜像构建技术&#xff0c;允许在一个 Dockerfile 中使用多个构建阶段&#xff0c;每个阶段可以使用不同的基础镜像&#xff0c;最终只保留需要的文件&#xff0c;从而显著减小镜像体…

人工智能学习23-BP-图像编码

人工智能学习概述—快手视频 人工智能学习23-BP-图像编码—快手视频

k8s的开篇学习和安装

k8s的开篇学习 学习网站 参考资料 1。 K8S能干什么 [概述 | Kubernetes](https://kubernetes.io/zh-cn/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-it-do)需要开代理 2。docker资料 https://docs.docker.com/get-started/3.prometheus资料 https://promet…

CS144 lab0: warmup

Lab 0: networking warmup 1. 环境 依赖配置 sudo apt update && sudo apt install git cmake gdb build-essential clang \clang-tidy clang-format gcc-doc pkg-config glibc-doc tcpdump tsharkg13配置 ppa中科大源 # deb https://ppa.launchpadcontent.net/ubu…

StarRocks

StarRocks 是一个高性能的 分布式 MPP(Massively Parallel Processing)数据库,主要用于 实时数据分析(Real-Time Analytics),是新一代的 OLAP 数据库,对标 ClickHouse、Apache Doris 等。 🌟 一、StarRocks 是什么? StarRocks 是一个面向实时分析场景、支持高并发、高…