更新時間:2020-02-25 09:24:09 來源:動力節點 瀏覽3471次
MySQL是一個關系型數據庫管理系統,由瑞典MySQLAB公司開發,目前屬于Oracle旗下產品。MySQL是最流行的關系型數據庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關系數據庫管理系統)應用軟件。
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的SQL語言是用于訪問數據庫的最常用標準化語言。MySQL軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sortedset--有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。
Redis是一個高性能的key-value數據庫。redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。
Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由于完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。
redis的官網地址,非常好記,是redis.io。(特意查了一下,域名后綴io屬于國家域名,是britishIndianOceanterritory,即英屬印度洋領地)
目前,Vmware在資助著redis項目的開發和維護。
PostgreSQL是一個自由的對象-關系數據庫服務器(數據庫管理系統),它在靈活的BSD-風格許可證下發行。它提供了相對其他開放源代碼數據庫系統(比如MySQL和Firebird),和專有系統(比如Oracle、Sybase、IBM的DB2和MicrosoftSQLServer)之外的另一種選擇。
PostgreSQL不尋常的名字導致一些讀者停下來嘗試拼讀它,特別是那些把SQL拼讀為"sequel"的人。PostgreSQL開發者把它拼讀為"post-gress-Q-L"。它也經常被簡略念為"postgres"。
事實上,PostgreSQL的特性覆蓋了SQL-2/SQL-92和SQL-3/SQL-99,首先,它包括了可以說是目前世界上最豐富的數據類型的支持,其中有些數據類型可以說連商業數據庫都不具備,比如IP類型和幾何類型等;其次,PostgreSQL是全功能的自由軟件數據庫,很長時間以來,PostgreSQL是唯一支持事務、子查詢、多版本并行控制系統(MVCC)、數據完整性檢查等特性的唯一的一種自由軟件的數據庫管理系統。Inprise的InterBase以及SAP等廠商將其原先專有軟件開放為自由軟件之后才打破了這個唯一。最后,PostgreSQL擁有一支非常活躍的開發隊伍,而且在許多黑客的努力下,PostgreSQL的質量日益提高。
從技術角度來講,PostgreSQL采用的是比較經典的C/S(client/server)結構,也就是一個客戶端對應一個服務器端守護進程的模式,這個守護進程分析客戶端來的查詢請求,生成規劃樹,進行數據檢索并最終把結果格式化輸出后返回給客戶端。為了便于客戶端的程序的編寫,由數據庫服務器提供了統一的客戶端C接口。而不同的客戶端接口都是源自這個C接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等,同時也要指出的是,PostgreSQL對接口的支持也是非常豐富的,幾乎支持所有類型的數據庫客戶端接口。這一點也可以說是PostgreSQL一大優點。
MemCache的工作流程如下:先檢查客戶端的請求數據是否在memcached中,如有,直接把請求數據返回,不再對數據庫進行任何操作;如果請求的數據不在memcached中,就去查數據庫,把從數據庫中獲取的數據返回給客戶端,同時把數據緩存一份到memcached中(memcached客戶端不負責,需要程序明確實現);每次更新數據庫的同時更新memcached中的數據,保證一致性;當分配給memcached內存空間用完之后,會使用LRU(LeastRecentlyUsed,最近最少使用)策略加上到期失效策略,失效數據首先被替換,然后再替換掉最近未使用的數據。[2]
Memcache是一個高性能的分布式的內存對象緩存系統,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然后從內存中讀取,從而大大提高讀取速度。
Memcache是danga的一個項目,最早是LiveJournal服務的,最初為了加速LiveJournal訪問速度而開發的,后來被很多大型的網站采用。
Memcached是以守護程序(監聽)方式運行于一個或多個服務器中,隨時會接收客戶端的連接和操作。
SQLite,是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數據庫管理系統來講,它的處理速度比他們都快
以上就是動力節點Java培訓機構小編介紹的“Java菜鳥教程數據庫和數據存儲”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習