用於在資料庫裡儲存二進位製大檔案
可以統一用資料庫處理資料,而無需借助外部的檔案系統
可以利用mongodb的複製或分片機制,故障恢復和可擴充套件性較好
避免使用檔案系統的某些限制(例如linux在同一目錄下的檔案數限制)
避免檔案碎片(mongodb分配空間以2gb作為單位)
#使用mongofiles操作gridfs
[root@linux bin]# echo "hello, word" > foo.txt
[root@linux bin]# cat foo.txt
hello, word
[root@linux bin]# ./mongofiles put foo.txt
connected to: 127.0.0.1
added file:
done!
[root@linux bin]# ./mongofiles list
connected to: 127.0.0.1
foo.txt 12
[root@linux bin]# rm -rf foo.txt
[root@linux bin]# ./mongofiles get foo.txt
connected to: 127.0.0.1
done write to: foo.txt
[root@linux bin]# cat foo.txt
hello, word
#gridfs原理
檔案被分成若干塊(chunk),每個塊作為乙個文件儲存
有乙個單獨的文件儲存分塊的資訊,以及檔案的元資料
fs.chunks集合
fs.files集合
#何時分片
單個節點的磁碟不足
單個mongod不能滿足寫資料的效能要求
將大量資料放到記憶體中提高效能
#片鍵什麼是片鍵 (就是文件的屬性,我們通常說的列)
選擇遞增片鍵還是隨機片鍵 (當然是隨機的好,跟b*tree索引傾斜一樣的道理)
片鍵對操作和效能的影響
##實施分片
1、啟動配置伺服器
./mongod --dbpath /nosql/mongodb/dbs/config --port 20000
2、啟動mongos
./mongos --port 30000 --configdb 127.0.0.1:20000
3、新增mongod例項(片)
./mongod --dbpath /nosql/mongodb/dbs/shard1 --port 10000
#使用連線mongos
./mongo 127.0.0.1:30000/admin
mongos> db.runcommand()
4、對資料庫啟用分片
mongos> db.runcommand()
##對foo資料庫啟用分片
5、對集合進行分片
mongos> db.runcommand(})
##foo是資料庫 bar是集合 _id是片鍵
#健壯的集群規劃
可以多配置伺服器
可以啟動多個mongos
可以每個片都是副本集
#檢視所有的片
mongos> use config
switched to db config
mongos> db.shards.find()
#database集合
mongos> db.databases.find()
#chunks集合
mongos> db.chunks.find()
, "ns" : "foo.bar", "min" : }, "max" : }, "shard" : "shard0000" }
#獲得概要
mongos> db.printshardingstatus()
--- sharding status ---
sharding version:
shards:
databases:
foo.bar chunks:
shard0000 1
} -->> } on : shard0000
#刪除片
mongos> use admin
switched to db admin
mongos> db.runcommand()
mongos> db.runcommand()
,"ok" : 1
}
第10周作業
1 編寫指令碼selinux.sh,實現開啟或禁用selinux功能 2 統計 etc fstab檔案中每個檔案系統型別出現的次數 awk uuid end etc fstab sort nr 3 提取出字串yd c m05mb 9 bdh7dq yvixp3vpw中的所有數字 echo yd c ...
第10周作業
問題描述 東東在玩遊戲 game23 在一開始他有乙個數字n,他的目標是把它轉換成m,在每一步操作中,他可以將n乘以2或乘以3,他可以進行任意次操作。輸出將n轉換成m的操作次數,如果轉換不了輸出 1。思路首先計算出兩者相差的倍數 進行除6運算,cnt 2 然後測試除2或者除3,cnt 1 注意除0導...
第10周 總結
node專案已經考核結束,自己的node專案中還存在的很大的問題,一些小的細節需要修改,很多東西需要深挖,知識點需要進一步進行鞏固,很多錯誤自己都能看出來,有時候可能因為懶,很多細節就沒有做到位,這在以後是需要避免的,不允許出現的。今天,就新專案給19級全部成員和部分大三學長進行了詳細的講解。盡可能...