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

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

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

MongoDB 簡介

高性能,易部署,易使用

常見應(yīng)用場景

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

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

  • 海量 Volume
  • 多樣 Variety
  • 實時 Velocity

大數(shù)據(jù)庫時代的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

缺點: 當(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é)點,rs2、rs3 進(jìn)從節(jié)點。

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({});

測試: 強行停止主庫 rs1,檢查從庫是否能分配并切換到主庫 ,在繼續(xù)強行停止分配后的主庫 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é)點 rs1 掛了,會有從節(jié)點過來替代原有主庫的位置,但是當(dāng)僅剩最后一個從庫時,無法切換為主庫。

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

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

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é)點 (只是仲裁,并不存儲數(shù)據(jù))

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

相關(guān)文章

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于MongoDB中文檔的更新操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(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í)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Mongodb索引的優(yōu)化

    Mongodb索引的優(yōu)化

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

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

    mongoDB分頁的兩種方法,mongoDB的分頁查詢是通過limit(),skip(),sort()這三個函數(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)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    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實現(xiàn)備份壓縮的方法教程

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

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

最新評論

平和县| 定南县| 子长县| 光泽县| 景宁| 苏州市| 新巴尔虎左旗| 大连市| 什邡市| 南投市| 曲靖市| 缙云县| 双牌县| 永登县| 资阳市| 谢通门县| 金沙县| 无为县| 鸡东县| 虞城县| 甘谷县| 象州县| 兰西县| 大洼县| 吉林市| 延川县| 汉源县| 安庆市| 北安市| 大方县| 汉川市| 株洲市| 遂川县| 柏乡县| 木兰县| 马边| 固安县| 江油市| 正定县| 陆川县| 乐安县|