最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB高效讀寫海量數(shù)據(jù)的方法

 更新時(shí)間:2022年02月17日 11:59:47   作者:Run2948  
這篇文章介紹了MongoDB高效讀寫海量數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

MongoDB 簡介

高性能,易部署,易使用

常見應(yīng)用場景

  • 分布式的日志收集: elk 單節(jié)點(diǎn)最多 32g , mongodb 越多越好
  • 傳感器(電子產(chǎn)品) --- 數(shù)據(jù)庫 --- MongoDB
  • 地理地圖
  • 網(wǎng)絡(luò)爬蟲

大數(shù)據(jù)時(shí)代的3V

  • 海量 Volume
  • 多樣 Variety
  • 實(shí)時(shí) Velocity

大數(shù)據(jù)庫時(shí)代的3高

  • 高并發(fā)
  • 高可擴(kuò)
  • 高性能

MongoDB 集群

1. 一主一從

  • docker-compose.yml
version: '2'
services: 
  master: 
    image: mongo:3.4
    volumes:
      - /data/mongodbml/master:/data/db
    command: mongod --dbpath /data/db --master 
  slaver: image:mongo:3.4
    volumes:
      - /data/mongodbml/slaver:/data/db 
    command: mongod --dbpath /data/db --slave --source master:27017
    links:
      - master

注意: 默認(rèn)從庫是不能讀取,需要設(shè)置 SlaveOk 的狀態(tài):

docker-compose up -d

docker ps

docker exec -it masterid /bin/bash

mongo
> show databases;
> use test;
> db.userinfo.insert({"name":"master"});
> db.userinfo.find({});
exit

docker exec -it slaveid /bin/bash

mongo
> show databases;
> db.getMongo().setSlaveOk();
> use test;
> db.userinfo.find({});


docker-compose rm

缺點(diǎn): 當(dāng)主庫掛了,需要手動切換到從庫

2. 一主二從

  • docker-compose.yml
version: '2'
services: 
  rs1: 
    image: mongo:3.4
    volumes:
      - /data/mongodbtest/replset/rs1:/data/db
    command: mongod --dbpath /data/db --replset myset 
  rs2: image:mongo:3.4
    volumes:
      - /data/mongodbtest/replset/rs2:/data/db
    command: mongod --dbpath /data/db --replset myset 
  rs3: image:mongo:3.4
    volumes:
      - /data/mongodbtest/replset/rs3:/data/db
    command: mongod --dbpath /data/db --replset myset

設(shè)置: 安排 rs1 進(jìn)主節(jié)點(diǎn),rs2、rs3 進(jìn)從節(jié)點(diǎn)。

docker-compose up -d

docker ps 

docker exec -it rs1id /bin/bash

mongo

> rs.initiate()

myset:SECONDARY> rs.add('rs2:27017'); 
myset:PRIMARY> rs.add('rs3:27017'); 
myset:PRIMARY> rs.conf()

myset:PRIMARY> show databases;
myset:PRIMARY> use test;
myset:PRIMARY> db.userinfo.insert({"name":"rs1"});
myset:PRIMARY> db.userinfo.find({});
exit

docker exec -it rs2id /bin/bash

mongo

myset:SECONDARY> rs.status();
myset:SECONDARY> rs.slaveOk();
myset:SECONDARY> show databases;
myset:SECONDARY> use test;
myset:SECONDARY> db.userinfo.find({});
exit

docker exec -it rs3id /bin/bash

mongo

myset:SECONDARY> rs.slaveOk();
myset:SECONDARY> show databases;
myset:SECONDARY> use test;
myset:SECONDARY> db.userinfo.find({});

測試: 強(qiáng)行停止主庫 rs1,檢查從庫是否能分配并切換到主庫 ,在繼續(xù)強(qiáng)行停止分配后的主庫 rs2

docker stop rs1id

docker exec -it rs2id /bin/bash

docker stop rs2id

docker exec -it rs3id /bin/bash

docker-compose rm

結(jié)論:

當(dāng)主節(jié)點(diǎn) rs1 掛了,會有從節(jié)點(diǎn)過來替代原有主庫的位置,但是當(dāng)僅剩最后一個(gè)從庫時(shí),無法切換為主庫。

當(dāng)主節(jié)點(diǎn) rs1 重新啟動恢復(fù)后,只會立馬變?yōu)閺膸?,不再是主庫。除非等到現(xiàn)在的主庫掛了,才有可能重新回到主庫的位置。

問題: 當(dāng)主節(jié)點(diǎn) rs1 掛了,會有從節(jié)點(diǎn)過來替代原有主庫的位置,但是具體是哪一個(gè)從庫沒有辦法控制。所以我們需要添加一個(gè)沖裁 來解決這個(gè)問題。

3. 一主一從一仲裁

  • docker-compose.yml
version: '2'
services: 
  master: 
    image: mongo:3.4
    volumes:
      - /data/mongodbnode/replset/rs1:/data/db
    command: mongod --dbpath /data/db --replset newset --oplogSize 128
  slave: image:mongo:3.4
    volumes:
      - /data/mongodbnode/replset/rs2:/data/db
    command: mongod --dbpath /data/db --replset newset --oplogSize 128
  arbiter: image:mongo:3.4
    command: mongod --dbpath /data/db --replset newset  --smallfiles --oplogSize 128

配置:

docker-compose up -d

docker ps 

docker exec -it masterid /bin/bash

mongo

> rs.initiate()

newset:SECONDARY> rs.add('slave:27017'); 
newset:PRIMARY> rs.add('arbiter:27017', true);
newset:PRIMARY> re.conf()

newset:PRIMARY> show databases;
newset:PRIMARY> use test;
newset:PRIMARY> db.userinfo.insert({"name":"master"});
newset:PRIMARY> db.userinfo.find({});
exit

docker exec -it slaveid /bin/bash
newset:SECONDARY> res.slaveOk();
newset:SECONDARY> use test;
newset:SECONDARY> db.userinfo.find({});
exit


docker exec -it arbiterid /bin/bash
newset:ARBITER> res.slaveOk();
newset:ARBITER> show databases;
newset:ARBITER> db.userinfo.find({});

注意: 當(dāng)存在 arbiter節(jié)點(diǎn) (只是仲裁,并不存儲數(shù)據(jù))

到此這篇關(guān)于MongoDB高效讀寫海量數(shù)據(jù)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mongodb聚合函數(shù)count、distinct、group如何實(shí)現(xiàn)數(shù)據(jù)聚合操作

    Mongodb聚合函數(shù)count、distinct、group如何實(shí)現(xiàn)數(shù)據(jù)聚合操作

    Mongodb中自帶的基本聚合函數(shù)有三種:count、distinct和group。下面我們分別來講述一下這三個(gè)基本聚合函數(shù)及如何實(shí)現(xiàn)數(shù)據(jù)聚合操作,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • MongoDB中文檔的更新操作示例詳解

    MongoDB中文檔的更新操作示例詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB中文檔的更新操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 通過3分鐘快速掌握MongoDB中regex的幾種用法

    通過3分鐘快速掌握MongoDB中regex的幾種用法

    $regex為模糊查詢的字符串提供正則表達(dá)式功能,MongoDB使用Perl兼容正則表達(dá)式(即“文件”)8.41版與UTF-8支持。下面這篇文章主要給大家介紹了關(guān)于如何通過3分鐘快速掌握MongoDB中regex的幾種用法,需要的朋友可以參考下。
    2018-03-03
  • MongoDB中的常用語句總結(jié)大全

    MongoDB中的常用語句總結(jié)大全

    這篇文章主要給大家總結(jié)介紹了關(guān)于MongoDB中的一些常用語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Mongodb索引的優(yōu)化

    Mongodb索引的優(yōu)化

    MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。接下來通過本文給大家介紹Mongodb索引的優(yōu)化,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • mongoDB分頁的兩種方法(圖例)

    mongoDB分頁的兩種方法(圖例)

    mongoDB分頁的兩種方法,mongoDB的分頁查詢是通過limit(),skip(),sort()這三個(gè)函數(shù)組合進(jìn)行分頁查詢的。
    2013-11-11
  • CentOS 6.4創(chuàng)建Mongodb副本集

    CentOS 6.4創(chuàng)建Mongodb副本集

    這篇文章主要為大家詳細(xì)介紹了CentOS 6.4創(chuàng)建Mongodb副本集的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 在CentOS?7上安裝MongoDB數(shù)據(jù)庫的方法步驟

    在CentOS?7上安裝MongoDB數(shù)據(jù)庫的方法步驟

    MongoDB作為一款高性能、開源的NoSQL數(shù)據(jù)庫,因其靈活性和可擴(kuò)展性,成為了眾多開發(fā)者和企業(yè)的首選,這篇文章主要給大家介紹了關(guān)于在CentOS?7上安裝MongoDB數(shù)據(jù)庫的方法步驟,需要的朋友可以參考下
    2024-09-09
  • MongoDB中連接池、索引、事務(wù)

    MongoDB中連接池、索引、事務(wù)

    這篇文章主要介紹了MongoDB中連接池、索引、事務(wù)的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • MongoDB實(shí)現(xiàn)備份壓縮的方法教程

    MongoDB實(shí)現(xiàn)備份壓縮的方法教程

    這篇文章主要給大家介紹了關(guān)于MongoDB實(shí)現(xiàn)備份壓縮的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評論

祁门县| 萝北县| 海阳市| 康定县| 长治县| 天柱县| 乌恰县| 莆田市| 沁阳市| 景东| 习水县| 长沙市| 汉沽区| 林口县| 区。| 景泰县| 安图县| 建瓯市| 望城县| 株洲县| 应城市| 高州市| 富宁县| 临武县| 谢通门县| 庆安县| 连南| 乌兰察布市| 鲁山县| 尼玛县| 昆明市| 新丰县| 揭阳市| 克什克腾旗| 沁源县| 侯马市| 望城县| 商都县| 枣阳市| 东阳市| 钟山县|