什么是MongoDB

目錄

主要特點

MongoDB概念解析

完整術語列表

MongoDB安裝

MongoDB Shell

安裝MongoDB Shell

數據庫管理

查看數據庫列表

創建數據庫

刪除數據庫

默認數據庫

系統內置數據庫

集合管理

查看集合

創建集合

更新集合名

刪除集合

文檔操作

插入文檔

查詢文檔

刪除文檔

更新文檔

MongoDB備份(mongodump)與恢復(mongorestore)

安裝備份與恢復命令

MongoDB數據備份

MongoDB數據庫恢復

MongoDB用戶管理


主要特點

文檔導向的存儲:MongoDB是一個面向文檔的數據庫,它以JSON-like的格式存儲數
據,使得數據結構更加靈活和豐富。
索引優化查詢:MongoDB允許用戶為文檔中的任意屬性創建索引,例如FirstName和A
ddress,從而提高查詢效率和排序性能。
數據鏡像與擴展性:通過本地或網絡創建數據的副本,MongoDB實現了強大的數據冗余
和擴展能力。水平擴展與分片:面對增加的負載,MongoDB可以通過分片技術將數據分布到計算機網絡中的其他節點上,實現水平擴展。
強大的查詢語言:MongoDB使用JSON格式的查詢語法,支持復雜的查詢表達式,包括
對內嵌對象和數組的查詢。數據更新:利用 update()命令,MongoDB能夠替換整個文檔或更新指定的數據字段,MapReduce批量處理:MongoDB的MapReduce功能專為大規模數據處理和聚合操作設計,通過Map函數的emit(key,value)
調用和Reduce函數的邏輯處理,實現高效的
數據匯總。MapReduce腳本編寫:Map和Reduce函數使用JavaScript編寫,可以通過
db. ru或mapreduce命令在MongoDB中執行。
nCommandGridFS大文件存儲:GridFS是MongoDB內置的功能,用于存儲和檢索大于BSON文檔大小限制的文件,如圖片和視頻。
服務端腳本執行:MongoDB允許在服務端執行JavaScript腳本不,提供了直接在服務端
執行或存儲函數定義以供后續調用的能力。
多語言支持:MongoDB提供了對多種編程語言的支持,包括但不限于RUBY、PYTHON、JAVA、C++、PHP和C#。

MongoDB概念解析

SQL術語/概念MongoDB
術語/概念
解釋/說明
databasedatabase數據庫
tablecollection數據庫表/集合
rowdocument數據記錄行/文檔
columnfield數據字段/域
indexindex索引
table joins表連接,MongoDB不支持
primary keyprimary key主鍵,MongoDB自動將_id字段設置為主鍵

完整術語列表

文檔(Document):MongoDB的基本數據單元,通常是一個JSSON-1ike的結構,可以包含
多種數據類型。集合(Collection):類似于關系型數據庫中的表,集合是一組文檔的容器。在MongoDB中,一個集合中的文檔不需要有一個固定的模式。
數據庫(Database):包含一個或多個集合的MongoDB實例。
BSON:BinaryJSON的縮寫,是MongoDB用來存儲和傳輸文檔的二進制形式的JSON
索引(Index):用于優化查詢性能的數據結構,可以基于集合中的一個或多個字段創建索
引。分片(Sharding):一種分布數據到多個服務器(稱為分片)的為方法,用于處理大數據集和高吞吐量應用。副本集(ReplicaSet):一組維護相同數據集的MongoDB服務器,提供數據的冗余備份和高可用性。主節點(Primary):副本集中負責處理所有寫入操作的服務器。從節點(Secondary):副本集中的服務器,用于該取數據和在主節點故障時接管為主節點。MongoDBShell:MongoDB提供的命令行界面,用于與MongoDB實例交互。
聚合框架(AggregationFramework):用于執行復雜的數據處理和聚合操作的一系列操作。Map-Reduce:一種編程模型,用于處理大量數據集的并行計算。
GridFS:用于存儲和檢索大于BSON文檔大小限制的文件的規范。ObjectId:MongoDB為每個文檔自動生成的唯一標識符。CRUD操作:創建(Create)、讀取(Read)、更新(Update)、刪除(Delete)操作。事務(Transactions):從MongoDB4.0開始支持,允許一組操作作為一個原子單元執行。操作符(0perators):用于查詢和更新文檔的特殊字段。
連接(Join):MongoDB 允許在查詢中使用$1ookup操作符來實現類似SQL的連接操作。
TTL(Time-To-Live):可以為集合中的某些字段設置 TTL,!以自動刪除舊數據。
存儲引擎(Storage Engine):MongoDB用于數據存儲和管理的底層技術,如WiredTiger
和MongoDB的舊存儲引擎MMAPv1。MongoDB Compass:MongoDB的圖形界面工具,用于可視化和管理MongoDB數據。MongoDBAtlas:MongoDB提供的云服務,允許在云中托管MoongoDB數據庫。

MongoDB安裝

安裝前我們需要安裝各個Linux平臺依賴包。解壓安裝包將解壓包拷貝到指定目錄MongoDB的可執行文件位于bin目錄下,所以可以將其添加到PATH路徑中:

dnf -y install libcurl openssl 
tar zxvf mongodb-linux-x86_64-rhel8-8.0.8.tgz
mv mongodb-linux-x86_64-rhel88-8.0.8 /usr/local/mongodb
echo
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >>/etc/profile source /etc/profile

?我們在啟動前可以先創建這兩個目錄并設置當前用戶有讀寫權限:由于 mongodb 依賴openssl11,需要編譯安裝openssl11設置 openssl11的環境變量接下來啟動 Mongodb 服務:看到以下信息,說明啟動成功。

[root@localhost ~]#mkdir-p /var/lib/mongo
[root@localhost ~]#mkdir -p /var/log/mongodb
[root@localhost ~]#chownwhoami`/var/lib/mongo
[root@localhost ~]#chownwhoami /var/log/mongodb
[root@localhost ^]# dnf install -y gcc make perl
[root@localhost `]# tar xzf openssl-1.1.1w.tar.gz
[root@localhost ^]# cd openssl-1.1. l lw
[rootesentinel01 openss1-1.1.1w]#./config --prefix=/opt/openss111 --openssldir=
/opt/openss111/ssl
[root@sentinel01openssl-1.1.1.1w]#make -j$(nproc)
[root@sentinel01 openssl-1.1.1w]#make install
[root@localhost *]# echo 'export_D_LIBRARYPATH=/opt/openss111/lib:$LD_LIBRARY
PATH' | sudo tee /etc/profile.d/openssl11.sh
[root@localhost ~]# source /etc/profile.d/opensslll.sh
[root@localhost ~]#mongod --dbpath /var/lib/mongo --logpath/var/log/mongodb/m
ongod. log --fork

MongoDB Shell

MongoDBShell是MongoDB提供的官方交互式界面,允許用戶與MongoDB數據庫進行
交互、執行命令和操作數據庫。
MongoDBShell是基于JavaScript的,允許用戶直接在命令行或者腳本中使用Java
Script語言來操作MongoDB數據庫。

安裝MongoDB Shell

[root@localhost ^]# tar xzf mongosh-2.5.0-linux-x64-openss13tg2
[root@localhost ^]# cd mongosh-2.5.0-linux-x64-openss13
[root@localhost mongosh-2.5.0-linux-x64-openss13]# cd bin/
[root@localhost bin]# cp mongosh /usr/local/bin/
[root@localhost bin]# cp mongosh_crypt_vl.so /usr/loca/1ib/

? ? ? ? ? ? ? ? ?驗證MongoDB Shell?


mongosh -- host <hostname> ----port <port>
root@sentinel01 bin]# mongosh

數據庫管理

查看數據庫列表

要查看當前MongoDB實例中所有數據庫的列表,可以使用
show dbs
show dbs
要查看當前正在使用的數據庫,可以使用 db 命令:
db

創建數據庫

在MongoDB中,數據庫的創建是一個簡單的過程,當你首次向MongoDB中插入數據時,
如果數據庫不存在,MongoDB會自動創建它。
我們只需選擇一個數據庫名稱,并開始向其中插入文檔即可。

當你使用use命令來指定一個數據庫時,如果該數據庫不存在,MongoDB將自動創建它。
MongoDB 創建數據庫的語法格式如下:


use DATABASE_NAME
test> use runoob
switched to db runoob
runoob> db
runoob
runoob>

?

runoob>
show dbs
admin
40.00KiB
config
60.00KiB
local
40.00 KiB
runoob

?

runoob> db.runoob.insert0ne({"name":"zhangsan"})
acknowledged: true,
insertedId: ObjectId('680al8f4277aalc07blb2700'
runoob>
show dbs.
admin
40.00KiB
config
60.00KiB
local
40.00KiB
runoob
40.00KiB
runoob>

刪除數據庫

如果你需要刪除數據庫,可以使用db.dropDatabase方法:

use myDatabase
db.dropDatabase ()

?

runoob> show dbs
admin
40.00KiB
config
60.00KiB
local
40.00KiB
runoob 40.00 KiB
runoob> use runoob
already on db runoob
test> db.dropDatabase()
{ ok: 1, dropped: 'runoob
runoob> show dbs
admin
40.00KiB
config
60.00KiB
local
40.00KiB

默認數據庫

MongoDB中默認的數據庫為test,如果你沒有創建新的數據庫庫,數據將存放在test
數據庫中。當您通過shell連接到MongoDB實例時,如果未使用use命令切換到其他數據庫,則會默認使用test數據庫。
例如,在啟動MongoDB實例并連接到MongoDBshell后,如果您開始插入文檔而未顯
式指定數據庫,MongoDB將默認使用 test數據庫。

系統內置數據庫

在MongoDB中,admin、config 和 local
是三個特殊的系統內置數據庫
數據庫:存儲所有數據庫的用戶身份信息和全局權限(如 rcbot
用戶)。用admin戶必須通過
admin數據庫認證后才能執行跨庫管理操作。
數據庫:僅在分片集群環境中存在。存儲分片信息、塊(chur1k)分布、集合
config分片策略等關鍵元數據。
local數據庫:存儲當前節點的副本集狀態、操作日志(opl0g)等本地數據。數據不
會被復制到其他節點,僅存在于當前實例。

集合管理

查看集合

> show collections

創建集合

語法格式:
db.createCollection (name, options)
參數說明:
name:要創建的集合名稱。
options:可選參數,指定有關內存大小及索引的選項。

參數名類型描述示例值
capped布爾值是否創建一個固定大小的集合。true
size數值集合的最大大小(以字節為單位)。僅在d 為true 時有效。
:cappe
10485760
(10MB)
max數值集合中允許的最大文檔數。僅在capped 為tru 5000e 時有效。5000
validator對象用于文檔驗證的表達式。

{$jsonSchema:

{ ... }}

validationLevel字符串指定文檔驗證的嚴格程度。
"off":不進行驗證。
"strict":插入和更新操作都必須通過驗證(默認)。
"moderate":僅現有文檔更新時必須通過驗證,插
入新文檔時不需要。
"strict"
validationAction字符串指定文檔驗證失敗時的操作。
"error":阻止插入或更新(默認)。
warn":允許插入或更新,但會發出警告。
"error"
storageEngine對象為集合指定存儲引擎配置。

{ wiredTiger:

{ ... }}

參數名類型描述示例值
collation對象指定集合的默認排序規則

{ locale: "en"

strength: 2 }

?

?

db.createCollection ("myComplexCollection",
capped: true,
size: 10485760,
max: 5000,
validator:{$jsonSchema: {
bsonType:"object",
required: ["name", "email"],
properties:{
name:
bsonType:
string",
description:"必須為字符串且為必填項"
email: {
bsonType: "string",
pattern:
description:"必須為有效的電子郵件地址"
}},
validationLevel:"strict",
validationAction:"error",
storageEngine: {
wiredTiger:{configString: "block_compressor=zstd
},
collation:{locale:"en", strength:2}
});

更新集合名

renameCollection命令的語法:
db.adminCommand({
renameCollection: "sourceDb. sourceCollection",
to: "targetDb.targetCollection
dropTarget: <boolean>

參數說明:
renameCollection:要重命名的集合的完全限定名稱(包括數據庫名)。
·to:目標集合的完全限定名稱(包括數據庫名)。
dropTarget(可選):布爾值。如果目標集合已經存在,是否否刪除目標集合。默認值為f
alse.

1.確保已連接到 test數據庫
use test
2.運行renameCollection命
db.adminCommand({
renameCollection: "test.oldCollection",
to:"test.newCollection" });
如果你要將集合重命名到另一個數據庫,例如將test數據庫中的oldCollection重命名
為production數據庫中的newCollection,可以這樣做:
db.adminCommand({
renameCollection: "test.oldCollection",
to:"production. newCollection" });

刪除集合

>use mydb
switched to db
>db.createCollection("kgc")
{ok:1}
mydb>show collections
kgc
>db.kgc.drop()
true

文檔操作

方法用途是否棄用
insertone ()插入單個文檔
方法用途是否棄用
insertMany()插入多個文檔
insert ()插入單個或多個文檔
save插入或更新文檔

?

db.myCollection. insertOne({
"Alice",
name
25,
age:
city: "New York"

插入文檔

查詢文檔

db.myCollection.find();
db.myCollection.find(
$gt: 25 } },
age:
age: 1, id: 0 }
name:

刪除文檔

常用的刪除文檔方法包括deleteOne()、deleteMany
以及findOneAndDelete

db.myCollection.findOneAndDelete(
name:
"Charlie"
projection:
1.
name:
age:

更新文檔

在MongoDB中,更新文檔的操作可以使用多種方法實現,常用的方法包括
updateOne()、updateMany()、replaceOne()和findOneAndUpdate()。

插入測試數據

db. myCollection. insertMany([{ name: "Alice", age: 25,city: "LosAngeles", statu
"inactive" },{name: "Bob",age: 30,city: "Los Angeles",status:
"active"
S:
"Charlie", age: 35, city: "Chicago", status:
"active"}]);
name:

MongoDB備份(mongodump)與恢復(mongorestore)

mongodump?用于創建 MongoDB 數據的二進制備份,支持全量備份或指定庫 / 集合的增量備份

# 全量備份(默認連接 localhost:27017)
mongodump --out /path/to/backup/directory# 指定主機和端口
mongodump --host example.com --port 27017 --out /backup/dir# 指定認證信息(用戶名和密碼)
mongodump --username admin --password yourpassword --authenticationDatabase admin --out /backup/dir# 備份單個數據庫
mongodump --db mydatabase --out /backup/dir# 備份單個集合
mongodump --db mydatabase --collection mycollection --out /backup/dir# 壓縮輸出(4.2+ 版本支持)
mongodump --gzip --out /backup/dir

?

恢復數據庫 (mongorestore)

mongorestore?用于從?mongodump?創建的備份中恢復數據

# 從備份目錄恢復(默認恢復到 localhost:27017)
mongorestore /path/to/backup/directory# 指定目標主機和端口
mongorestore --host example.com --port 27017 /backup/dir# 指定認證信息
mongorestore --username admin --password yourpassword --authenticationDatabase admin /backup/dir# 恢復到指定數據庫(可重命名目標庫)
mongorestore --db targetdb /backup/dir/sourcedb# 恢復單個集合
mongorestore --db targetdb --collection mycollection /backup/dir/sourcedb/mycollection.bson# 恢復時不刪除現有數據(追加模式)
mongorestore --drop  # 恢復前刪除同名集合(默認行為)
mongorestore --noDrop  # 保留現有數據,追加新文檔# 從壓縮備份恢復
mongorestore --gzip /backup/dir

安裝備份與恢復命令

使用 Homebrew(推薦)

# 安裝 MongoDB Database Tools
brew tap mongodb/brew
brew install mongodb-database-tools
手動下載二進制包

從?MongoDB 官網?下載適合 macOS 的?.tgz?包解壓并移動到系統路徑

tar -zxvf mongodb-database-tools-macos-x86_64-<version>.tgz
sudo cp mongodb-database-tools-macos-x86_64-<version>/bin/* /usr/local/bin/

?Ubuntu/Debian

# 添加 MongoDB 官方倉庫
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update# 安裝 Database Tools
sudo apt-get install -y mongodb-database-tools

CentOS/RHEL

?

# 添加 MongoDB 官方倉庫
echo "[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo# 安裝 Database Tools
sudo yum install -y mongodb-database-tools

MongoDB數據備份

# 全量備份(默認 localhost:27017)
mongodump --out /data/backup/$(date +%Y%m%d)# 指定認證信息和壓縮
mongodump --username admin --password 'pass' \--authenticationDatabase admin \--gzip --out /data/backup/$(date +%Y%m%d)

?

# 1. 凍結寫入(臨時阻塞寫操作)
use admin
db.fsyncLock()# 2. 創建文件系統快照(如 LVM、云磁盤快照)
lvcreate -L 10G -s -n mongodb_snap /dev/mapper/vg_mongodb-lv_data# 3. 解除凍結
db.fsyncUnlock()
# 首次全量備份(含 oplog)
mongodump --oplog --out /data/backup/full_$(date +%Y%m%d)# 后續增量備份(從上次 oplog 時間點開始)
LATEST_OPLOG_TIME=$(cat /data/backup/full_*/oplog.bson | bsondump | tail -n 1 | jq -r '.ts.$timestamp.t')
mongodump --oplogReplay --oplogLimit "{'ts': {'\$gt': Timestamp($LATEST_OPLOG_TIME, 1)}}" --out /data/backup/incremental_$(date +%Y%m%d)

MongoDB數據庫恢復

使用?mongorestore?恢復邏輯備份

從?mongodump?創建的備份中恢復數據

# 恢復全部數據庫(默認覆蓋同名集合)
mongorestore /path/to/backup/directory# 指定目標數據庫(可重命名)
mongorestore --db newdb /path/to/backup/olddb# 恢復單個集合
mongorestore --db targetdb --collection users /path/to/backup/sourcedb/users.bson# 恢復時保留現有數據(追加模式)
mongorestore --noDrop /path/to/backup

MongoDB用戶管理

創建管理員用戶(首次配置)

啟動 MongoDB 服務(未啟用認證)

mongod --dbpath /data/db

連接 MongoDB 并創建管理員用戶:

use admin
db.createUser({user: "admin",pwd: passwordPrompt(), // 交互式輸入密碼roles: [ { role: "root", db: "admin" } ]
})
db.auth("admin", passwordPrompt()) // 返回 1 表示認證成功

用戶管理操作

?創建普通用戶
use mydb  // 切換到目標數據庫
db.createUser({user: "appuser",pwd: passwordPrompt(),roles: [{ role: "readWrite", db: "mydb" },  // 讀寫權限{ role: "read", db: "otherdb" }     // 只讀權限]
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84828.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Docker基礎】Docker核心概念:容器(Container)與鏡像(Image)的區別與聯系

目錄 引言 1 Docker鏡像&#xff08;Image&#xff09; 1.1 鏡像的定義 1.2 鏡像的特點 1.3 鏡像的創建 1.4 鏡像的結構 1.5 鏡像結構描述 2 Docker容器&#xff08;Container&#xff09; 2.1 容器的定義 2.2 容器的特點 2.3 容器的創建與運行 2.4 容器的生命周期…

從零到一:構建企業級 Vue.js 3 組件庫

前言&#xff1a;為何要構建組件庫&#xff1f; 在現代前端工程化體系中&#xff0c;組件庫已不再是大型團隊的專屬。它是一個團隊設計規范、開發模式和技術沉淀的核心載體。構建一個組件庫&#xff0c;能夠帶來諸多優勢&#xff1a; 提升效率&#xff1a;提供可復用的高質量…

【2025 CVPR-Backbone】Building Vision Models upon Heat Conduction

摘要 利用注意力機制的視覺表示模型在追求大感受野時面臨著巨大的計算開銷。在本研究中&#xff0c;我們通過引入基于物理熱傳導原理的熱傳導算子&#xff08;Heat Conduction Operator, HCO&#xff09;來緩解這一挑戰這么高級咩(⊙o⊙)&#xff01;。HCO將圖像塊視為熱源&am…

Rust編寫Shop管理系統

Rust編寫Shop管理系統 Actix Web 是一個功能強大、實用且速度極快的 Rust Web 框架。編寫Shop管理系統 HelloKeny 首先是先編寫最簡單的例子,類似hello World可以檢查環境 Actix Web 是一個功能強大、實用且速度極快的 Rust Web 框架。 命令 cargo new hellokenycd hell…

安寶特案例丨Vuzix AR智能眼鏡集成專業軟件,助力盧森堡醫院藥房轉型,贏得輝瑞創新獎

在Vuzix M400 AR智能眼鏡的助力下&#xff0c;盧森堡羅伯特舒曼醫院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;憑借在無菌制劑生產流程中引入增強現實技術&#xff08;AR&#xff09;創新項目&#xff0c;榮獲了2024年6月7日由盧森堡醫院藥劑師協會&#xff0…

快速冪算法詳解:從暴力到優雅的數學優化

文章目錄 一、樸素冪運算的問題二、快速冪的數學原理三、快速冪的遞歸實現四、快速冪的迭代實現五、模運算下的快速冪六、快速冪的應用場景七、總結 快速冪是一種高效計算冪運算的算法&#xff0c;能夠將時間復雜度從樸素的 O (n) 降低到 O (log n)。本文將深入探討快速冪的原理…

HTML+CSS 動態菜單和登錄框

摘要 實現了一個現代化的登錄/注冊界面&#xff0c;包含導航欄和彈窗表單。 HTML結構采用了響應式設計&#xff0c;包含Logo、導航鏈接和登錄按鈕。 CSS樣式實現了背景圖片、導航欄懸浮效果和表單美化&#xff0c;使用偽元素實現鏈接下劃線動畫。 JavaScript實現了彈窗切換…

抖音AI數字人對口型軟件LatentSync最新版整合包,音頻驅動口型講話

本次和大家分享一個字節跳動開發的強大的音頻驅動口型數字人視頻制作軟件LatentSync&#xff0c;我以前也分享過不少類似軟件了&#xff0c;比如&#xff1a;EchoMimic、VideoReTalking、hallo。字節的推出的這個效果稍微更好一點&#xff0c;我制作了最新版的一鍵啟動整合包。…

深入理解 PyTorch:從基礎到高級應用

在深度學習的浪潮中&#xff0c;PyTorch 憑借其簡潔易用、動態計算圖等特性&#xff0c;迅速成為眾多開發者和研究人員的首選框架。本文將深入探討 PyTorch 的核心概念、基礎操作以及高級應用&#xff0c;帶你全面了解這一強大的深度學習工具。? 一、PyTorch 簡介? PyTorch…

Java 中的 synchronized 與 Lock:深度對比、使用場景及高級用法

&#x1f4a1; 前言 在多線程并發編程中&#xff0c;線程安全問題始終是開發者需要重點關注的核心內容之一。Java 提供了多種機制來實現同步控制&#xff0c;其中最常用的兩種方式是&#xff1a; 使用 synchronized 關鍵字使用 java.util.concurrent.locks.Lock 接口&#xf…

Notepad++如何列選

在 Notepad 中&#xff0c;你可以通過 列模式&#xff08;Column Mode&#xff09; 進行垂直選擇文本&#xff08;列選&#xff09;&#xff0c;以下是具體操作方法&#xff1a; 方法 1&#xff1a;鍵盤 鼠標列選 按住 Alt 鍵&#xff08;或 Alt Shift&#xff09;。 按住鼠…

華為OD機考-水仙花數Ⅰ-邏輯分析(JAVA 2025B卷)

import java.util.*; public static Integer get(int count,int c){if(count<3||count>7){return -1;}//存儲每位數的最高位……最低位int[] arr new int[count];List<Integer> res new ArrayList<>();for(int i(int) Math.pow(10,count-1);i<(int) Math…

基于 STL+VMD 二次分解的 Informer-LSTM 并行預測模型詳解與案例

一、背景與動機 在時間序列預測中,如電力負荷、風速、交通流量等復雜數據常表現為: 非線性:趨勢+季節+突變+噪聲 多尺度:高頻擾動與低頻變化共存 長時依賴:遠期信息也影響當前預測 傳統模型(如 ARIMA、LSTM)往往無法兼顧全局趨勢建模與局部擾動感知,因此我們提出一種 …

【Linux Learning】SSH連線出現警告:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

問題&#xff1a;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is al…

輕量級密碼算法PRESENT的C語言實現(無第三方庫)

一、PRESENT算法介紹 PRESENT是一種超輕量級分組密碼算法&#xff0c;由Bogdanov等人在2007年提出&#xff0c;專門為資源受限環境如RFID標簽和傳感器網絡設計。該算法在硬件實現上僅需1570個門等效電路(GE)&#xff0c;在保持較高安全性的同時實現了極小的硬件占用空間。PRES…

if的簡化書寫,提高執行效率

很多時候可能有下面判斷 if(a0) {b1;} else if(a1) {b0;} 就是ba的反向值&#xff1a; a0;b1&#xff1b; a1;b0; 這時&#xff0c;可以簡化如下&#xff1a; ba^1 使用異或&#xff0c;程序更簡潔&#xff0c;執行效率也更高 其他的也可以類似使用按位異或優化代碼

Vim 調用外部命令學習筆記

Vim 外部命令集成完全指南 文章目錄 Vim 外部命令集成完全指南核心概念理解命令語法解析語法對比 常用外部命令詳解文本排序與去重文本篩選與搜索高級 grep 搜索技巧文本替換與編輯字符處理高級文本處理編程語言處理其他實用命令 范圍操作示例指定行范圍處理復合命令示例 實用技…

bash挖礦木馬事件全景復盤與企業級防御實戰20250612

&#x1f427; CentOS “-bash 挖礦木馬” 事件全景復盤與企業級防御實戰 ?? 作者&#xff1a;Narutolxy | &#x1f4c5; 日期&#xff1a;2025-06-12 | &#x1f3f7;? 標簽&#xff1a;Linux 安全、應急響應、運維加固、實戰復盤 &#x1f4d8; 內容簡介 本文是一場真實…

「Linux中Shell命令」Shell命令基礎

知識點詳細解析 Shell簡介 Shell是Linux操作系統系統中用戶與操作系統內核交互的接口。它既是命令解釋器,負責接收用戶輸入的命令并將其轉換為內核能夠理解的指令,也是一種腳本編程語言。作為Linux操作系統的重要組成部分,Shell扮演著用戶與系統內核之間的"中間人"…

202557讀書筆記|《夢里花落知多少(輕經典)》——有你在的地方才最美

《夢里花落知多少&#xff08;輕經典&#xff09;》作者三毛&#xff0c;物極必反&#xff0c;陰晴圓缺&#xff0c;小滿即萬全么&#xff1f;因為幸福過于滿溢。所以幸福被收走了。 沒有看過太多三毛的作品&#xff0c;給我的感覺她是很敏感&#xff0c;多愁善感及沒有安全感…