久久www免费人成看片老司机_母亲4在线观看完整版 百度_波多野结衣久久_亚洲午夜成人片_天美传媒国产精品果冻

 
您現(xiàn)在的位置:首頁(yè) ? 知識(shí)庫(kù) ? 軟件開(kāi)發(fā) 軟件開(kāi)發(fā)
淺談NoSql之MongoDB
發(fā)布日期:2018-04-11

定義


MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。它介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。

特點(diǎn)

  • 高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。

主要功能特性

  • 面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類型的數(shù)據(jù)。

  • 模式自由。

  • 支持動(dòng)態(tài)查詢。

  • 支持完全索引,包含內(nèi)部對(duì)象。

  • 支持查詢。

  • 支持復(fù)制和故障恢復(fù)。

  • 使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等)。

  • 自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性。

  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語(yǔ)言。

  • 文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)。

  • 可通過(guò)網(wǎng)絡(luò)訪問(wèn)。

適用場(chǎng)景

  • 作為文檔型DB

    MongoDB是文檔型(Document store)的NoSQL數(shù)據(jù)庫(kù),數(shù)據(jù)以文檔的形式在MongoDB中保存,文檔實(shí)際上就是一個(gè)個(gè)JSON字符串,使用JSON的好處是非常直觀,數(shù)據(jù)從MongoDB中讀取出來(lái)后,可無(wú)需轉(zhuǎn)換直接使用;通過(guò)一系列的Key-Value鍵值對(duì)來(lái)表示數(shù)據(jù),且Key-Value鍵值對(duì)支持豐富的數(shù)據(jù)結(jié)構(gòu),Value可以是普通的整型、字符串,可以是數(shù)組,也可以是嵌套的子文檔,使用嵌套的好處是在MongoDB中僅需一次簡(jiǎn)單的查詢就能夠獲取到你所需的數(shù)據(jù)。舉電商領(lǐng)域?yàn)槔?,網(wǎng)易嚴(yán)選上賣的上衣和褲子兩種商品,除了有共同屬性,如產(chǎn)地、價(jià)格、材質(zhì)、顏色等外,還有各自有不同的屬性集,如上衣的獨(dú)有屬性是肩寬、胸圍、袖長(zhǎng)等,褲子的獨(dú)有屬性是臀圍、腳口和褲長(zhǎng)等。

  • 地理位置索引

    MongoDB還具有強(qiáng)大的索引能力,支持創(chuàng)建唯一索引、二級(jí)索引、TTL索引和地理位置索引。而地理位置索引是MongoDB早已被用戶所熟知的特性,其球面(Spherical)和平面(Flat)兩種模式,提供了豐富的地址位置的表示方式,如2d、2dsphere和GeoJSON等,對(duì)于移動(dòng)App,如地圖軟件、打車軟件、外賣軟件,MongoDB強(qiáng)大的地理位置索引功能使其為最佳選擇;此外,對(duì)于物聯(lián)網(wǎng)、智慧都市等領(lǐng)域,也需要大量的地理位置相關(guān)操作,這些都是MongoDB的競(jìng)技場(chǎng)。

  • 高可用和讀寫(xiě)負(fù)載均衡解決方案

    MongoDB的復(fù)制集是數(shù)據(jù)庫(kù)領(lǐng)域領(lǐng)先的高可用和讀寫(xiě)負(fù)載均衡解決方案,提供了數(shù)據(jù)自動(dòng)(異步/同步)復(fù)制能力,一個(gè)新節(jié)點(diǎn)加入到復(fù)制集中會(huì)自動(dòng)進(jìn)行數(shù)據(jù)初始同步隨后使用oplog進(jìn)行增量復(fù)制,無(wú)需人工干預(yù);如果復(fù)制集的Primary節(jié)點(diǎn)發(fā)生宕機(jī),MongoDB會(huì)自動(dòng)進(jìn)行主從切換,在復(fù)制集大多數(shù)節(jié)點(diǎn)在線的情況下,能夠基于Raft協(xié)議自動(dòng)地快速選出新的Primary并恢復(fù)讀寫(xiě)服務(wù),無(wú)需人工干預(yù);MongoDB運(yùn)維人員所需做的僅僅是將宕機(jī)節(jié)點(diǎn)重新啟動(dòng),若宕機(jī)的是Primary,則重新啟動(dòng)后,會(huì)自動(dòng)進(jìn)行數(shù)據(jù)回滾并最終成為復(fù)制集的Secondary節(jié)點(diǎn),所以,相比目前的大多數(shù)關(guān)系型數(shù)據(jù)庫(kù),MongoDB復(fù)制集實(shí)現(xiàn)了自動(dòng)復(fù)制和故障切換,大大減低了運(yùn)維復(fù)雜度,解放了DBA。如果你對(duì)數(shù)據(jù)的持久化和可用性有較高的要求,MongoDB復(fù)制集是上佳的選擇。

  • 大數(shù)據(jù)

    MongoDB是為大數(shù)據(jù)而生的,提供sharding機(jī)制用于實(shí)現(xiàn)業(yè)務(wù)的水平擴(kuò)展。每個(gè)shard都保存業(yè)務(wù)的一部分?jǐn)?shù)據(jù),shard可以配置為復(fù)制集,確保shard上數(shù)據(jù)的高可用性,shard內(nèi)部由一系列連續(xù)的chunk組成,chunk是某一片鍵區(qū)間內(nèi)的數(shù)據(jù)記錄集合;mongos用于業(yè)務(wù)請(qǐng)求的路由,將業(yè)務(wù)負(fù)載分?jǐn)偟讲煌膕hard上,此外mongos還會(huì)對(duì)shard上超過(guò)一定大小的chunk進(jìn)行分裂(split);根據(jù)不同shard中數(shù)據(jù)量的大小,在shard將進(jìn)行chunk遷移(migrate),應(yīng)該說(shuō)sharding提供了完善的業(yè)務(wù)數(shù)據(jù)和負(fù)載水平擴(kuò)展的機(jī)制,對(duì)于物聯(lián)網(wǎng)、日志系統(tǒng)和監(jiān)控系統(tǒng)這類包含TB級(jí)海量數(shù)據(jù)的應(yīng)用場(chǎng)景,使用MongoDB sharding是個(gè)不錯(cuò)的選擇。

怎樣決定選擇使用MongoDB

  • 無(wú)需要跨文檔或跨表的事務(wù)及復(fù)雜的join查詢支持

  • 敏捷迭代的業(yè)務(wù),需求變動(dòng)頻繁,數(shù)據(jù)模型無(wú)法確定

  • 存儲(chǔ)的數(shù)據(jù)格式靈活,不固定,或?qū)儆诎虢Y(jié)構(gòu)化數(shù)據(jù)

  • 業(yè)務(wù)并發(fā)訪問(wèn)量大,需數(shù)千的QPS

  • TB級(jí)以上的海量數(shù)據(jù)存儲(chǔ),且數(shù)據(jù)量不斷增加

  • 要求存儲(chǔ)的數(shù)據(jù)持久化、不丟失

  • 需要99.999%的數(shù)據(jù)高可用性

  • 需要大量的地理位置查詢、文本查詢

NoSql與關(guān)系型DB的比較

  • 理解ACID與BASE的區(qū)別(ACID是關(guān)系型數(shù)據(jù)庫(kù)強(qiáng)一致性的四個(gè)要求,而B(niǎo)ASE是NoSQL數(shù)據(jù)庫(kù)通常對(duì)可用性及一致性的弱要求原則。

  • 理解持久化與非持久化的區(qū)別。這么說(shuō)是因?yàn)橛械腘oSQL系統(tǒng)是純內(nèi)存存儲(chǔ)的。

  • 你必須意識(shí)到傳統(tǒng)有關(guān)系型數(shù)據(jù)庫(kù)與NoSQL系統(tǒng)在數(shù)據(jù)結(jié)構(gòu)上的本質(zhì)區(qū)別。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)通常是基于行的表格型存儲(chǔ),而NoSQL系統(tǒng)包括了列式存儲(chǔ)(Cassandra)、key/value存儲(chǔ)(Memcached)、文檔型存儲(chǔ)(CouchDB)以及圖結(jié)構(gòu)存儲(chǔ)(Neo4j)

  • 與傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)有統(tǒng)一的SQL語(yǔ)言操作接口不同,NoSQL系統(tǒng)通常有自己特有的API接口。

  • 在架構(gòu)上,你必須搞清楚,NoSQL系統(tǒng)是被設(shè)計(jì)用于成百上千臺(tái)機(jī)器的集群中的,而非共享型數(shù)據(jù)庫(kù)系統(tǒng)的架構(gòu)。

  • 在NoSQL系統(tǒng)中,可能你得習(xí)慣一下不知道你的數(shù)據(jù)具體存在何處的情況。

  • 在NoSQL系統(tǒng)中,你最好習(xí)慣它的弱一致性。”eventually consistent”(最終一致性)正是BASE原則中的重要一項(xiàng)。比如在Twitter,你在Followers列表中經(jīng)常會(huì)感受到數(shù)據(jù)的延遲。

  • 在NoSQL系統(tǒng)中,你要理解,很多時(shí)候數(shù)據(jù)并不總是可用的。

  • 你得理解,有的方案是擁有分區(qū)容忍性的,有的方案不一定有。

NoSql中的mongodb,redis,hbase對(duì)比

mongodb

定位是取代關(guān)系型數(shù)據(jù)庫(kù),想當(dāng)一個(gè)主流數(shù)據(jù)庫(kù)。因?yàn)樗蟹墙Y(jié)構(gòu)化、方便擴(kuò)充字段、寫(xiě)性能優(yōu)于mysql。萬(wàn)事萬(wàn)物有利有弊,mongodb的內(nèi)存型緩存內(nèi)容,讓其速度飛快,帶來(lái)內(nèi)存率多,掉電數(shù)據(jù)問(wèn)題等,加上自身代碼還有很多bug帶來(lái)不如老牌關(guān)系型數(shù)據(jù)庫(kù)穩(wěn)定,特別是在主從等分布式環(huán)境,其設(shè)計(jì)也帶來(lái)諸多問(wèn)題。

redis

是一個(gè)小而美的數(shù)據(jù)庫(kù),主要用在key-value 的內(nèi)存緩存,讀寫(xiě)性能極佳,list,set,hash等幾種簡(jiǎn)單結(jié)構(gòu)使得使用也很簡(jiǎn)單。緩存與簡(jiǎn)單是其定位,分布式redis架構(gòu)的出現(xiàn),讓redis更加廣泛的使用,穩(wěn)坐緩存第一把交椅。

hbase

定位非結(jié)構(gòu)化大數(shù)據(jù),可伸縮性好,并不是完全高可用,底層依靠hadoop提供的HDFS,當(dāng)你發(fā)現(xiàn)128GB內(nèi)存雙路CPU25TB存儲(chǔ)只夠一星期的時(shí)候,估計(jì)就沒(méi)有選擇綜合癥了,HBase成了最佳選擇。

  • 1.公司登記注冊(cè)于2003年1月27日,清遠(yuǎn)市桑達(dá)電子網(wǎng)絡(luò)媒體有限公司
    2.公司2006年起成為清遠(yuǎn)市政府定點(diǎn)協(xié)議供貨商,電子采購(gòu)供貨商
    3.公司2007年被清遠(yuǎn)市相關(guān)政府部門評(píng)為安防行業(yè)狀元
    4.公司2007年起成為長(zhǎng)城電腦清遠(yuǎn)如意服務(wù)站(SP368)
    5.公司2007年承建清遠(yuǎn)市橫河路口電子警察工程,開(kāi)創(chuàng)清遠(yuǎn)電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠(yuǎn)金牌代理(伙伴編號(hào):30030013)
    7.公司組團(tuán)隊(duì)參加南方都市報(bào)組織的創(chuàng)富評(píng)選,獲廣東80強(qiáng)。公司申請(qǐng)多項(xiàng)軟件著作權(quán)、專利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動(dòng)世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動(dòng)電子網(wǎng)絡(luò)媒體有限公司
    10.2021-01-13更名為廣東互動(dòng)電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個(gè)負(fù)責(zé)任的百年企業(yè)! 天行健,君子以自強(qiáng)不息;地勢(shì)坤,君子以厚德載物;
    為用戶創(chuàng)造價(jià)值! 讓軟件驅(qū)動(dòng)世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對(duì)客戶負(fù)責(zé),對(duì)員工負(fù)責(zé),對(duì)企業(yè)命運(yùn)負(fù)責(zé)!幫助支持公司的客戶成功;幫助忠誠(chéng)于公司的員工成功!
  • 聯(lián)系電話:0763-3391888 3323588 3318977
    服務(wù)熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務(wù)QQ: 602045550
    投資及業(yè)務(wù)投訴QQ: 529623964
    微信:小米哥 微信號(hào):qysed3391888
    騰訊微博:桑達(dá)網(wǎng)絡(luò)-基石與起點(diǎn)
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請(qǐng)用@替換#)
在線客服
  • 系統(tǒng)集成咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 售后服務(wù)
    點(diǎn)擊這里給我發(fā)消息
  • 投資合作
    點(diǎn)擊這里給我發(fā)消息