MongoDB(三十九)
目录
一、概述
(一)相关概念
(二)特性
二、应用场景
三、安装
(一)编译安装
(二)yum安装
1、首先制作repo源
2、软件包名:mongodb-org
3、启动服务:systemctl start mongod
4、监听端口:mongod
5、端口号:27017
四、目录结构
(一)rpm -ql mongodb-org-server
1、MongoDB的配置文件
2、MongoDB的运行目录
3、MongoDB的可执行文件
4、MongoDB的系统服务文件
5、MongoDB的文档目录
6、MongoDB的许可协议文件
7、MongoDB的许可协议文件
8、MongoDB的README文件
9、MongoDB的第三方许可通知文件
10、MongoDB的man手册文件
11、MongoDB的数据目录,存储数据库文件
12、MongoDB的日志目录,存储日志文件
13、MongoDB的日志文件,记录MongoDB的运行日志
(二)rpm -ql mongodb-org-shell
1、MongoDB客户端工具的可执行文件路径(客户端命令)
2、MongoDB客户端工具的man手册文件路径
(三)rpm -ql mongodb-org-tools
1、将BSON文件转换为JSON格式的工具
2、用于安装MongoDB Compass的工具
3、用于从MongoDB数据库中导出数据的工具
4、用于将数据从MongoDB导出为JSON、CSV或TSV格式的工具
5、用于在MongoDB GridFS中存储和检索文件的工具
6、用于将数据导入MongoDB数据库的工具
7、用于从mongodump创建的备份文件中恢复数据的工具
8、用于监视MongoDB服务器状态的工具
9、用于监视MongoDB实例中的操作的工具
10、包含MongoDB工具集的文档
11、包含MongoDB工具集的第三方软件许可证通知
12、bsondump工具的man页
13、mongodump工具的man页
14、mongoexport工具的man页
15、mongofiles工具的man页
16、mongoimport工具的man页
17、mongoldap工具的man页
18、mongoreplay工具的man页
19、mongorestore工具的man页
20、mongostat工具的man页
21、mongotop工具的man页
(四)rpm -ql mongodb-org-mongos
1、存放系统范围的可执行文件
2、mongos的手册页文件
五、默认数据库
1、admin
2、local
3、config
六、数据库操作
(一)库操作
1、查看数据库
2、显示当前所在数据库
3、切换数据库
4、数据库创建
4.1、隐式创建
4.2、删除数据库
(二)文档操作
1、创建集合
2、查看集合
3、删除
3.1、删除数据库
3.2、删除集合
4、插入数据(文档)
4.1、单行
4.2、多行
5、查询数据
5.1全集合查询
5.2、条件查询
5.3、查询集合中有多少文档
6、删除数据
6.1、全文删除
6.2、条件删除
7、更新数据
7.1、所有满足条件的文档都进行更新
7.2、更新文档进行数值递增
七、MongoDB数据库备份
(一)备份命令
1、mongodump
2、mongoexport
(二)恢复命令
1、mongorestore
2、mongoimport
一、概述
mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON
(一)相关概念
实例:系统上运行的mongodb的进程,类似于mysql实例;
库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;
集合:由一组文档构成,类似于mysql的表;
文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;
主键:唯一标识一行数据
(二)特性
1、面向集合文档存储,适合存储json形式的数据;
2、格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
3、面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
4、有索引的支持,查询效率更快;
5、支持复制和自动故障转移;
6、可以使用分片集群提升查询性能
面向对象:
在MongoDB中,数据以文档(documents)的形式存储,文档是一种类似于JSON格式的数据结构,它可以包含键值对、数组和嵌套文档。文档是MongoDB中的基本数据单元,类似于关系型数据库中的行(row)。
MongoDB的面向对象概念具有以下特点:
文档模型:MongoDB使用文档模型来表示数据,文档可以嵌套和包含各种类型的数据,这使得MongoDB非常适合存储半结构化数据。
动态模式:相比关系型数据库,MongoDB的文档模型是动态的,即同一集合中的不同文档可以具有不同的结构。这样可以更容易地适应数据模式的变化和灵活性要求。
继承和多态:MongoDB支持文档之间的继承关系,一个文档可以从另一个文档继承属性。同时,MongoDB还支持多态,即一个字段可以包含不同类型的值。
引用关联:MongoDB支持使用引用关联文档,即一个文档中可以包含对其他文档的引用。这种引用关联可以用来建立文档之间的关系和查询数据。
MongoDB的面向对象概念使得它更适合存储和处理半结构化数据,同时提供了灵活性和扩展性,方便开发者处理不同类型的数据和建立数据之间的关联。
索引概念:
MongoDB索引是MongoDB中用于提高查询性能的数据结构。它类似于关系数据库中的索引,可以按照特定字段或字段组合进行排序和搜索。
MongoDB索引通常使用B树数据结构实现。它可将数据存储在内存中,以加快查询速度。当查询需要访问大量数据时,索引可以帮助减少磁盘IO操作,提高查询性能。
索引可以在单个字段上创建,也可以在多个字段上创建组合索引。创建索引后,MongoDB将使用这些索引来加速查询过程。索引可以按升序或降序排序,还可以设置唯一性约束,确保索引字段的唯一性。
索引的创建和使用需要权衡考虑。创建过多的索引会增加存储空间和写入操作的开销,同时也会增加更新数据的复杂性。此外,索引的选择要基于实际查询模式和性能需求进行评估。
总结来说,MongoDB索引是用于提高查询性能的数据结构,它可以按照特定字段或字段组合进行排序和搜索,并使用B树数据结构进行实现。索引的创建和使用需要考虑存储空间、写入操作开销和查询需求等因素。
二、应用场景
大数据存储和分析:由于MongoDB的灵活性和可扩展性,它非常适合用于存储和分析大规模数据集。它可以处理海量的数据,并支持数据聚合、数据分析和实时查询。
实时分析和日志处理:MongoDB可以快速地存储和索引生成的数据,使其适用于实时分析和日志处理。它可以轻松处理大量实时数据,并提供快速的查询和聚合功能。
内容管理和博客平台:MongoDB的文档模型非常适合存储和管理文本和多媒体内容。它支持动态模式,可以轻松地适应不同类型和格式的内容。
社交网络和实时应用:MongoDB对于实时应用和高并发的场景具有很好的性能。它可以处理大量的读写操作,并提供可扩展性和高可用性。
互联网应用程序:MongoDB适合用于构建Web应用程序,如电子商务平台、内容管理系统和在线游戏。它可以处理复杂的数据模型和高并发的访问请求。
总结来说,MongoDB适用于处理大规模数据、实时分析、内容管理、社交网络和互联网应用程序等各种场景。它提供高性能、可扩展性和灵活性,使开发人员能够构建出功能强大的应用程序。
三、安装
(一)编译安装
(二)yum安装
1、首先制作repo源
vim /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
2、软件包名:mongodb-org
3、启动服务:systemctl start mongod
4、监听端口:mongod
5、端口号:27017
四、目录结构
(一)rpm -ql mongodb-org-server
1、MongoDB的配置文件
vim /etc/mongod.conf
port: 27017 | 监听端口号 |
bindIp: 127.0.0.1 | 监听地址 |
2、MongoDB的运行目录
/run/mongodb
3、MongoDB的可执行文件
/usr/bin/mongod
4、MongoDB的系统服务文件
/usr/lib/systemd/system/mongod.service
5、MongoDB的文档目录
/usr/share/doc/mongodb-org-server-4.2.24
6、MongoDB的许可协议文件
/usr/share/doc/mongodb-org-server-4.2.24/LICENSE-Community.txt
7、MongoDB的许可协议文件
/usr/share/doc/mongodb-org-server-4.2.24/MPL-2
8、MongoDB的README文件
/usr/share/doc/mongodb-org-server-4.2.24/README
9、MongoDB的第三方许可通知文件
/usr/share/doc/mongodb-org-server-4.2.24/THIRD-PARTY-NOTICES
10、MongoDB的man手册文件
/usr/share/man/man1/mongod.1.gz
11、MongoDB的数据目录,存储数据库文件
/var/lib/mongo
12、MongoDB的日志目录,存储日志文件
/var/log/mongodb
13、MongoDB的日志文件,记录MongoDB的运行日志
/var/log/mongodb/mongod.log
(二)rpm -ql mongodb-org-shell
1、MongoDB客户端工具的可执行文件路径(客户端命令)
/usr/bin/mongo
2、MongoDB客户端工具的man手册文件路径
/usr/share/man/man1/mongo.1.gz
(三)rpm -ql mongodb-org-tools
1、将BSON文件转换为JSON格式的工具
/usr/bin/bsondump
2、用于安装MongoDB Compass的工具
/usr/bin/install_compass
3、用于从MongoDB数据库中导出数据的工具
/usr/bin/mongodump
4、用于将数据从MongoDB导出为JSON、CSV或TSV格式的工具
/usr/bin/mongoexport
5、用于在MongoDB GridFS中存储和检索文件的工具
/usr/bin/mongofiles
6、用于将数据导入MongoDB数据库的工具
/usr/bin/mongoimport
7、用于从mongodump创建的备份文件中恢复数据的工具
/usr/bin/mongorestore
8、用于监视MongoDB服务器状态的工具
/usr/bin/mongostat
9、用于监视MongoDB实例中的操作的工具
/usr/bin/mongotop
10、包含MongoDB工具集的文档
/usr/share/doc/mongodb-org-tools-4.2.24
11、包含MongoDB工具集的第三方软件许可证通知
/usr/share/doc/mongodb-org-tools-4.2.24/THIRD-PARTY-NOTICES.gotools
12、bsondump工具的man页
/usr/share/man/man1/bsondump.1.gz
13、mongodump工具的man页
/usr/share/man/man1/mongodump.1.gz
14、mongoexport工具的man页
/usr/share/man/man1/mongoexport.1.gz
15、mongofiles工具的man页
/usr/share/man/man1/mongofiles.1.gz
16、mongoimport工具的man页
/usr/share/man/man1/mongoimport.1.gz
17、mongoldap工具的man页
/usr/share/man/man1/mongoldap.1.gz
18、mongoreplay工具的man页
/usr/share/man/man1/mongoreplay.1.gz
19、mongorestore工具的man页
/usr/share/man/man1/mongorestore.1.gz
20、mongostat工具的man页
/usr/share/man/man1/mongostat.1.gz
21、mongotop工具的man页
/usr/share/man/man1/mongotop.1.gz
(四)rpm -ql mongodb-org-mongos
1、存放系统范围的可执行文件
/usr/bin/mongos
2、mongos的手册页文件
/usr/share/man/man1/mongos.1.gz
五、默认数据库
进入MongoDB数据库命令
mongo
1、admin
从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
2、local
这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
3、config
当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
六、数据库操作
(一)库操作
1、查看数据库
注:以下命令二选一即可,均可正常使用。
show databases
show dbs
2、显示当前所在数据库
db
3、切换数据库
use zn
4、数据库创建
4.1、隐式创建
不用主动创建,使用use newDB,会自动创建不存在的数据库,只有在库中创建集合后才会保存,并使用show dbs查看到
4.2、删除数据库
use dbName
db.dropdatabase()
(二)文档操作
1、创建集合
db.createCollection('wjy')
2、查看集合
show tables
3、删除
3.1、删除数据库
db.dropDatabase()
注:在删除数据库时,一定要先进入要删除的数据库
3.2、删除集合
db.需要删除的集合名称.drop()
db.wjy.drop()
db["123"].drop()是指在数据库中删除名为"123"的集合(collection)或表(table)。
其中,db是数据库对象,["123"]表示要操作的集合或表的名称,drop()表示删除该集合或表。
db.getCollection("123").drop()
4、插入数据(文档)
4.1、单行
db.集合名称.insert({key:value})
db.wjy.insert({'a':'123'})
查看命令:
db.wjy.find({})
内容解析:
{ "_id" : ObjectId("64da1f759aabd69ea17751d8"), "a" : "123" }
这是一个MongoDB的文档数据,结构如下:
{ "_id" : ObjectId("64da1f759aabd69ea17751d8"), "a" : "123" }
其中:
_id
是文档的唯一标识符,由MongoDB自动生成,用于唯一标识该文档。
a
是文档中的一个字段,它的值是字符串 "123"。
4.2、多行
db.集合名称.insertmany([{key:value},{key:value},{key:value}])
db.wjy.insertMany([{'b':'1234'},{'c':'12345'},{'d':'123456'}])
内容解析:
这是一个MongoDB的操作结果,对应的内容解析如下:
acknowledged
表示操作是否被MongoDB服务器确认执行。如果值为true,表示操作已被成功确认。insertedIds
表示插入操作成功后生成的文档的唯一标识符(ObjectIds)的列表。在这个例子中,三个文档被成功插入,它们的唯一标识符分别是:
- ObjectId("64da20c76fb9e74578a149d1")
- ObjectId("64da20c76fb9e74578a149d2")
- ObjectId("64da20c76fb9e74578a149d3")
这个操作的结果说明在执行插入操作后,MongoDB服务器已经成功确认了操作,并且返回了生成的插入文档的唯一标识符列表。
db.wjy.find({})
mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)两种方式:
db.wjy.insert({'_id':'1','a':'123','phone':'111111'})
db.wjy.insert({'_id':NumberInt(2),'b':'1234','phone':'222222'})
删除数据
db.wjy.deleteMany({})
5、查询数据
5.1全集合查询
db.集合名称.find({})
db.wjy.find({})
db.集合名称.find()
db.wjy.find()
5.2、条件查询
db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})
db.wjy.find({'a':'123'})
db.wjy.find({'a':'123'},{'a':0})
命令解析:
db.wjy
表示在数据库中选择集合wjy
进行查询。db
是数据库对象,wjy
是集合名称。find({'a':'123'})
表示查询集合中的文档,其中字段a
的值为'123'
。{'a':0}
表示设置查询结果中不包含字段a
。在查询结果中,其他字段将会被返回,而字段a
不会被返回。这个查询操作的意思是,在集合
wjy
中查找字段a
的值为'123'
的文档,并返回这些文档中除了字段a
以外的其他字段。
key:1 显示,key:0 不显示
当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue
5.3、查询集合中有多少文档
db.集合名称.count()
db.wjy.count()
6、删除数据
6.1、全文删除
db.集合名称.remove({})
db.wjy.remove({})
6.2、条件删除
db.集合名称.remove({key:value})
db.wjy.remove({'b':'1234'})
7、更新数据
db.wjy.update({_id:'1'},{$set:{'phone':'222222'}})
7.1、所有满足条件的文档都进行更新
db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})
7.2、更新文档进行数值递增
db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})
先创建5个同名,方面更改完成查看
第一个:
db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(10)}})
第二个:
db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(20)}})
第三个:
db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(30)}})
第四个:
db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(-20)}})
第五个:
db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(-10)}})
七、MongoDB数据库备份
(一)备份命令
1、mongodump
选项
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
-o=<path>
语法
mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory
mkdir /bak
mongodump -d zn -o /bak
2、mongoexport
选项
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
-o=<path>
语法
mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json
mongoexport -d zn -c wjy -o /bak/zn_wjy-bak.json
(二)恢复命令
注:在恢复备份前,我们先删除 zn 数据库,不然无法体现出恢复效果
1、mongorestore
选项
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
--drop 当目标数据库中存在同名集合则删除再恢复
语法
mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile
mongorestore -d zn -c wjy /bak/zn/wjy.bson
内容解析:
checking for collection data in /bak/zn/wjy.bson:检查备份文件/bak/zn/wjy.bson中是否有集合数据。
reading metadata for zn.wjy from /bak/zn/wjy.metadata.json:从备份文件/bak/zn/wjy.metadata.json中读取集合"zn.wjy"的元数据信息。
restoring zn.wjy from /bak/zn/wjy.bson:从备份文件/bak/zn/wjy.bson中恢复集合"zn.wjy"的数据。
no indexes to restore:没有索引需要恢复。
finished restoring zn.wjy (5 documents, 0 failures):成功完成集合"zn.wjy"的数据恢复,总共恢复了5个文档,没有失败的文档。
5 document(s) restored successfully. 0 document(s) failed to restore.:成功恢复了5个文档,没有失败的文档。
mongo
show dbs
use zn
show tables
db.wjy.find({})
现在已经验证备份已经恢复完毕
2、mongoimport
注:在恢复备份前,我们先删除 zn 数据库下的 wjy 集合,不然无法体现出恢复效果
db.wjy.drop()
选项
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
--drop 当目标数据库中存在同名集合则删除再恢复
语法
mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password backupDirectory/jsonFile.json
mongoimport -d zn -c wjy /bak/zn_wjy-bak.json
内容解析:
2023-08-14T23:05:48.974+0800 connected to: mongodb://localhost/
2023-08-14T23:05:48.982+0800 5 document(s) imported successfully. 0 document(s) failed to import.
进入数据库查看验证
mongo
show dbs
show tables
db.wjy.find({})
经过查看,数据库集合内容已经成功进行恢复
总结
MongoDB是一种强大的非关系型数据库,具有高性能、灵活的数据模型和丰富的功能。它适用于各种应用场景,包括大数据、实时分析和Web应用程序等。尽管使用MongoDB需要一些学习和配置,但它提供的性能和可扩展性使得它成为许多开发者和组织的首选数据库管理系统。
相关文章:

MongoDB(三十九)
目录 一、概述 (一)相关概念 (二)特性 二、应用场景 三、安装 (一)编译安装 (二)yum安装 1、首先制作repo源 2、软件包名:mongodb-org 3、启动服务:…...

InnoDB引擎
1 逻辑存储结构 InnoDB的逻辑存储结构如下图所示: 1). 表空间 表空间是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个…...

CSS3中的var()函数
目录 定义: 语法: 用法: 定义: var()函数是一个 CSS 函数用于插入自定义属性(有时也被称为“CSS 变量”)的值 语法: var(custom-property-name, value) 函数的第一个参数是要替换的自定义属性…...

opencv图片换背景色
#include <iostream> #include<opencv2/opencv.hpp> //引入头文件using namespace cv; //命名空间 using namespace std;//opencv这个机器视觉库,它提供了很多功能,都是以函数的形式提供给我们 //我们只需要会调用函数即可in…...

JAVA语言:什么是懒加载机制?
JVM没有规定什么时候加载,一般是什么时候使用这个class才会什么时候加载,但是JVM规定了什么时候必须初始化(初始化是第三步、装载、连接、初始化),只要加载之后,那么肯定是要进行初始化的,所以我们就可以通过查看这个类有没有进行初始化,从而判断这个类有没有被加载。 …...

jupyter默认工作目录的更改
1、生成配置文件:打开Anaconda Prompt,输入如下命令 jupyter notebook --generate-config询问[y/N]时输入y 2、配置文件修改:根据打印路径打开配置文件jupyter_notebook_config.py,全文搜索找到notebook_dir所在位置。在单引号中…...

Flutter系列文章-Flutter UI进阶
在本篇文章中,我们将深入学习 Flutter UI 的进阶技巧,涵盖了布局原理、动画实现、自定义绘图和效果、以及 Material 和 Cupertino 组件库的使用。通过实例演示,你将更加了解如何创建复杂、令人印象深刻的用户界面。 第一部分:深入…...
Elasticsearch在部署时,对Linux的设置有哪些优化方法?
部署Elasticsearch时,可以通过优化Linux系统的设置来提升性能和稳定性。以下是一些常见的优化方法: 1.文件描述符限制 Elasticsearch需要大量的文件描述符来处理数据和连接,所以确保调整系统的文件描述符限制。可以通过修改 /etc/security/…...

【网络基础】应用层协议
【网络基础】应用层协议 文章目录 【网络基础】应用层协议1、协议作用1.1 应用层需求1.2 协议分类 2、HTTP & HTTPS2.1 HTTP/HTTPS 简介2.2 HTTP工作原理2.3 HTTPS工作原理2.4 区别 3、URL3.1 编码解码3.2 URI & URL 4、HTTP 消息结构4.1 HTTP请求方法4.2 HTTP请求头信…...

面试八股文Mysql:(1)事务实现的原理
1. 什么是事务 事务就是一组数据库操作,这些操作是一个atomic(原子性的操作) ,不可分割,要么都执行,要么回滚(rollback)都不执行。这样就避免了某个操作成功某个操作失败࿰…...

Linux学习之sed多行模式
N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下: goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…...

【刷题笔记8.15】【链表相关】LeetCode:合并两个有序链表、反转链表
LeetCode:【链表相关】合并两个有序链表 题目1:合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3…...
神经网络基础-神经网络补充概念-11-向量化逻辑回归
概念 通过使用 NumPy 数组来进行矩阵运算,将循环操作向量化。 向量化的好处在于它可以同时处理多个样本,从而加速计算过程。在实际应用中,尤其是处理大规模数据集时,向量化可以显著提高代码的效率。 代码实现-以逻辑回归为例 i…...

openGauss学习笔记-40 openGauss 高级数据管理-锁
文章目录 openGauss学习笔记-40 openGauss 高级数据管理-锁40.1 语法格式40.2 参数说明40.3 示例 openGauss学习笔记-40 openGauss 高级数据管理-锁 如果需要保持数据库数据的一致性,可以使用LOCK TABLE来阻止其他用户修改表。 例如,一个应用需要保证表…...

勘探开发人工智能技术:机器学习(6)
0 提纲 7.1 循环神经网络RNN 7.2 LSTM 7.3 Transformer 7.4 U-Net 1 循环神经网络RNN 把上一时刻的输出作为下一时刻的输入之一. 1.1 全连接神经网络的缺点 现在的任务是要利用如下语料来给apple打标签: 第一句话:I like eating apple!(我喜欢吃苹…...
代理类型中的 HTTP、HTTPS 和 SOCKS 有什么区别?
HTTP、HTTPS 和 SOCKS 都是代理(Proxy)协议,用于在网络通信中转发请求和响应,但它们在工作原理和用途上有一些区别。下面是它们之间的主要区别: HTTP代理: 工作原理: HTTP 代理主要用于转发 HTT…...

【STM32RT-Thread零基础入门】 3. PIN设备(GPIO)的使用
硬件:STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、PIN设备介绍1. 引脚编号获取2. 设置引脚的输入/输出模式3. 设置引脚的电平值4. 读取引脚的电平值5. 绑定引脚中断回调函数6. 脱离引脚中断…...

fiddler抓包工具的用法以及抓取手机报文定位bug
前言: fiddler抓包工具是日常测试中常用的一种bug定位工具 一 抓取https报文步骤 使用方法: 1 首先打开fiddler工具将证书导出 点击TOOLS------Options------Https-----Actions---选中第二个选项 2 把证书导出到桌面后 打开谷歌浏览器 设置---高级…...
spring中时间格式化的两种方式
方法一:自己格式化 自己写一个格式化的类,把date类型的时间传进去: public class DateUtil {public static String formatDate(Date date){SimpleDateFormat simpleDateFormatnew SimpleDateFormat("yyyy-MM-dd HH:mm:ss");retur…...

【设计模式】原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...