MongoDB:MySQL,Redis,ES,MongoDB的應用場景

簡單明了說明MySQL,ES,MongoDB的各自特點,應用場景,以及MongoDB如何使用的第一章節.

一. SQL與NoSQL

????????SQL被稱為結構化查詢語言.是傳統意義上的數據庫,數據之間存在很明確的關聯關系,例如主外鍵關聯,這種結構可以確保數據的完整性(數據沒有缺失并且正確).但是正因為這種嚴密的結構使得擴展起來不方便,而且系統越膨脹,關系越復雜,如果遇到系統升級,數據量增加,數據表增加,程序員就該頭痛了.

? ? ? ? 如果把SQL稱為正規化設計,那么NoSQL是反正規化設計,其中的數據沒有關聯,更容易擴展,數據模型更加的靈活,你甚至可以隨時修改數據存儲的結構.這樣有違規范的設計,帶來了數據擴充的便利性,在信息飛速發展的互聯網時代,這真是每個程序員所需要的,但是由于這種缺少關聯和規則,對數據的完整性就是它的一大缺點,正所謂有利有弊.

二.MySQL,Redis,ES,MongDB

1.MySQL應用場景

MySQL是典型的SQL代表,在數據結構比較固定,對數據完整性有嚴格要求的地方應該使用MySQL,例如商品庫存,用戶積分,用戶個人信息等地方.

2.Redis應用場景

????????前面提到的集中數據庫,除了MySQL之外,其它的都屬于NoSQL.

????????Redis是鍵值對存儲系統,通過Key進行數據的操作,通常是將數據存儲在內存中,當然也可以做持久化,但是通常也沒有太多必要,用來做數據持久化的數據庫很多,而且比它好用,所以Reids通常用來做數據的緩存.因為是通過key進行數據的操作,并且存儲在內存中,所以操作速度非常快,但是你也別往里面存很多數據,并且數據也要設置一個過期時間.

? ? ? ? Redis通常用來存儲用戶登錄信息,例如token,根據明確id值查詢的并且可能再同一個時間段內會被反復讀取的數據.

3.ES應用場景

? ? ? ? ES是分布式搜索和分析引擎,大概類似于百度搜索,淘寶搜索一類的,它的作用是對大量數據進行快速檢索,并且根據要求對檢索出來的數據進行評分,你可以按照評分或者其它規則對其進行排序,并且它的數據存儲采用主分片,父分片的形式.有利于做大數據的搜索功能.并且可以對數據進行聚合等操作.

? ? ? ? ES可以用于做一些低質量,大數據記錄的檢索功能,所謂低質量就是這些數據并不是要求很嚴密的或者說實時的,ES數據被稱為準實時,也就是離實時數據還有不少差距.類似于信息檢索,用戶日志檢索,商品檢索數據可以放在ES中.

4.MongoDB以及應用場景

? ? ? ? MongoDB是本篇文章介紹的重點,讓我多啰嗦幾句.

? ? ? ? MongoDB是NoSQL中的文檔形數據庫,采用文檔的形式存儲數據,也就是將單個實體的所有數據都存儲在文檔中,而文檔又存在集合中.MongoDB是半結構化的非關系型數據庫,相當于是在NoSQL中混入了一個不堅定的叛徒.在MongoDB中有以下概念.這里只介紹了幾個特殊之處.

? ? ? ?1.DataBase:不同與另外集中NoSQL,MongoDB有數據庫的概念;大概等用于mysql中的數據庫概念.

? ? ? ? 2.集合:MongoDB是面向集合Collection進行存儲的,這個相當于MySQL中的數據表;

? ? ? ? 3.文檔:Document是MongoDB存儲數據的基本單元,相當于MySQL中的一個實體(也就是一行數據),MongoDB中的文檔形式是一種叫做BSON的文本.

? ? ? ? 4.MongoDB中也有MySQL中的視圖,索引,存儲過程,用戶,字段的概念.字段相當于數據表的列,但是這個列可以彈性的增加或者減少.

? ? ? ? 就是這樣一個SQL與NoSQL結合起來的怪胎確實目前做系統開發經常用到的一種數據庫,因為在實際應用中它的優點是其他數據庫所不具備的.

2.4.1?MongoDB的文檔

????????MongoDB的數據是已文檔的形式存儲的,而文檔是已BSON格式存儲的,BSON是以JSON為基礎經過改良好的一種文本格式,使用JSON的基本格式(例如:鍵值對,{},[]等),但是引入了新的數據類型,例如日期ObjectId等.但是BSON會占用更大的空間,以此來換取更快的查詢速度,典型的以空間換取時間模式.

?2.4.2?MongoDB的特征

? ? ? ? SQL具有ACID(原子性,一致性,隔離性和持久性),NoSQL具有BASE(基本可用性,可伸縮性,最終一致性),而MongoDB在NoSQL的基礎上增加了原子性和事務.

2.4.3?MongoDB的應用場景

? ? ? ? 鑒于MongoDB的這些特性,它可以用來處理大量的低價值數據,并且對數據處理性能要求比較高,而且還可能存在數據結構需要高度的伸縮性.

? ? ? ? 通俗來說,就是處理一些數據量多,而且數據相關度不高,不存在需要很高的準確性(例如實時的庫存),數據格式可能會有變化,并且還對數據的操作要求響應比較快.那么哪些場景符合這些特征了?

? ? ? ? 例如:用戶評論,評分,商品詳情,這類信息.

三.?MongoDB的安裝

3.1 安裝MogoDB Server

這個比較簡單,下載社區版,直接安裝,沒有什么特別需要注意的地方.

http://MongoDB 社區版

3.2 下載? MogoDB Shell

MogoDB Shell可以使用命令操作MongoDB,下載之后直接可以用,建議放在MongoDB安裝文件夾里面,以免找不到.

MongoDB Shell

3.3 使用Navicat Premium連接數據庫

和連接MySQL差不多,用Navicat操作MongoDB比較方便.

四.創建MongoDB的登錄用戶

? ? ? ? 在下載的MongoDB Shell中找到 mongosh-1.10.4\bin\mongosh.exe 文件,雙擊運行.顯示一個DOS窗口,打開后敲回車(使用默認連接方式).輸入以下命令:

use admin

連接到admin數據庫,這個數據庫可以讓你創建用戶.然后再輸入下面的命令:

db.createUser({user:"<用戶名>",pwd:"<密碼>",roles:["root"]})

輸入的時候替換<>的內容,包括<>.這樣就可以創建用戶名和密碼了.

創建用戶名和密碼之后,還需要修改一個配置.打開

C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg 這個文件,并且新增下面的配置:

#security:
security:authorization: enabled

? 好了,MongoDB的用戶名就已經創建好了.

????????

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

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

相關文章

神經網絡基礎-神經網絡補充概念-34-正則化

概念 正則化是一種用于控制模型復雜度并防止過擬合的技術&#xff0c;在機器學習和深度學習中廣泛應用。它通過在損失函數中添加一項懲罰項來限制模型的參數&#xff0c;從而使模型更傾向于選擇簡單的參數配置。 理解 L1 正則化&#xff08;L1 Regularization&#xff09;&a…

數據分析 | Boosting與Bagging的區別

Boosting與Bagging的區別 Bagging思想專注于降低方差&#xff0c;操作起來較為簡單&#xff0c;而Boosting思想專注于降低整體偏差來降低泛化誤差&#xff0c;在模型效果方面的突出表現制霸整個弱分類器集成的領域。具體區別體現在如下五點&#xff1a; 弱評估器&#xff1a;Ba…

vb數控加工技術教學素材資源庫的設計和構建

摘 要 20世紀以來,社會生產力迅速發展,科學技術突飛猛進,人們進行信息交流的深度與廣度不斷增加,信息量急劇增長,傳統的信息處理與決策的手段已不能適應社會的需要,信息的重要性和信息處理問題的緊迫性空前提高了,面對著日益復雜和不斷發展,變化的社會環境,特別是企業…

Windows上使用dump文件調試

dump文件 dump文件記錄當前程序運行某一時刻的信息&#xff0c;包括內存&#xff0c;線程&#xff0c;線程棧&#xff0c;變量等等&#xff0c;相當于調試程序時運行到某個斷點上&#xff0c;把程序運行的信息記錄下來。可以通過Windbg打開dump&#xff0c;查看程序運行的變量…

mysql 修改存儲路徑,重啟失敗授權

目錄 停掉mysql修改mysql 配置文件my.cnf目錄授權重啟mysql 停掉mysql 修改mysql 配置文件my.cnf 更改mysql 存儲位置 到/data/mysql_data目錄下&#xff1a; datadir/data/mysql/mysql_data/socket/data/mysql/mysql_data/mysql.sockmysql 默認路么徑在 /var/lib/mysql/ 防止…

go_并發編程(1)

go并發編程 一、 并發介紹1&#xff0c;進程和線程2&#xff0c;并發和并行3&#xff0c;協程和線程4&#xff0c;goroutine 二、 Goroutine1&#xff0c;使用goroutine1&#xff09;啟動單個goroutine2&#xff09;啟動多個goroutine 2&#xff0c;goroutine與線程3&#xff0…

在 React 中獲取數據的6種方法

一、前言 數據獲取是任何 react 應用程序的核心方面。對于 React 開發人員來說&#xff0c;了解不同的數據獲取方法以及哪些用例最適合他們很重要。 但首先&#xff0c;讓我們了解 JavaScript Promises。 簡而言之&#xff0c;promise 是一個 JavaScript 對象&#xff0c;它將…

Python Web:Django、Flask和FastAPI框架對比

原文&#xff1a;百度安全驗證 Django、Flask和FastAPI是Python Web框架中的三個主要代表。這些框架都有著各自的優點和缺點&#xff0c;適合不同類型和規模的應用程序。 1. Django&#xff1a; Django是一個全功能的Web框架&#xff0c;它提供了很多內置的應用程序和工具&am…

排序+運算>直接運算的效率的原因分析

大家好,我是愛編程的喵喵。雙985碩士畢業,現擔任全棧工程師一職,熱衷于將數據思維應用到工作與生活中。從事機器學習以及相關的前后端開發工作。曾在阿里云、科大訊飛、CCF等比賽獲得多次Top名次。現為CSDN博客專家、人工智能領域優質創作者。喜歡通過博客創作的方式對所學的…

ADIS16470和ADIS16500從到手到讀出完整數據,附例程

由于保密原因&#xff0c;不能上傳我這邊的代碼&#xff0c;我所用的開發環境是IAR&#xff0c; 下邊轉載別的博主的文章&#xff0c;他用的是MDK 下文的博主給了你一個很好的思路&#xff0c;特此提出表揚 最下方是我做的一些手冊批注&#xff0c;方便大家了解這個東西 原文鏈…

如何利用 ChatGPT 進行自動數據清理和預處理

推薦&#xff1a;使用 NSDT場景編輯器助你快速搭建可二次編輯的3D應用場景 ChatGPT 已經成為一把可用于多種應用的瑞士軍刀&#xff0c;并且有大量的空間將 ChatGPT 集成到數據科學工作流程中。 如果您曾經在真實數據集上訓練過機器學習模型&#xff0c;您就會知道數據清理和預…

有沒有比讀寫鎖更快的鎖

在之前的文章中&#xff0c;我們介紹了讀寫鎖&#xff0c;學習完之后你應該已經知道了讀寫鎖允許多個線程同時訪問共享變量&#xff0c;適用于讀多寫少的場景。那么在讀多寫少的場景中還有沒有更快的技術方案呢&#xff1f;還真有&#xff0c;在Java1.8這個版本里提供了一種叫S…

Docker安裝Skywalking APM分布式追蹤系統

Skywalking是一個應用性能管理(APM)系統&#xff0c;具有服務器性能監測&#xff0c;應用程序間調用關系及性能監測等功能&#xff0c;Skywalking分為服務端、管理界面、以及嵌入到程序中的探針部分&#xff0c;由程序中的探針采集各類調用數據發送給服務端保存&#xff0c;在管…

novnc 和 vnc server 如何實現通信?原理?

參考&#xff1a;https://www.codenong.com/js0f3b351a156c/

隨機微分方程

應用隨機過程|第7章 隨機微分方程 見知乎&#xff1a;https://zhuanlan.zhihu.com/p/348366892?utm_sourceqq&utm_mediumsocial&utm_oi1315073218793488384

復習3-5天【80天學習完《深入理解計算機系統》】第七天

專注 效率 記憶 預習 筆記 復習 做題 歡迎觀看我的博客&#xff0c;如有問題交流&#xff0c;歡迎評論區留言&#xff0c;一定盡快回復&#xff01;&#xff08;大家可以去看我的專欄&#xff0c;是所有文章的目錄&#xff09;   文章字體風格&#xff1a; 紅色文字表示&#…

Linux與bash(基礎內容一)

一、常見的linux命令&#xff1a; 1、文件&#xff1a; &#xff08;1&#xff09;常見的文件命令&#xff1a; &#xff08;2&#xff09;文件屬性&#xff1a; &#xff08;3&#xff09;修改文件屬性&#xff1a; 查看文件的屬性&#xff1a; ls -l 查看文件的屬性 ls …

神經網絡基礎-神經網絡補充概念-33-偏差與方差

概念 偏差&#xff08;Bias&#xff09;&#xff1a; 偏差是模型預測值與實際值之間的差距&#xff0c;它反映了模型對訓練數據的擬合能力。高偏差意味著模型無法很好地擬合訓練數據&#xff0c;通常會導致欠擬合。欠擬合是指模型過于簡單&#xff0c;不能捕捉數據中的復雜模式…

基于java在線讀書與分享論壇設計與實現

摘 要 互聯系統的技術在如今的社會中&#xff0c;應用的越來越廣泛&#xff0c;通過互聯系統我們可以更方便地進行辦公&#xff0c;也能夠在系統上就能處理很多日常的事務。互聯系統的技術的發展&#xff0c;也是人們日常中接觸更多的一項技術。隨著互聯系統的發展&#xff0c;…

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 摘要當前的檢測sota模型網絡架構swin Transformer和Vision Transformer的不同之處整體架構Patch Partition結構Linear Embedding結構Swin Transformer Block結構 Patch MergingW-MSAMSA模塊計算量W-M…