㈠ Java資料庫主要有哪些
常用的資料庫有Mysql,緩存資料庫 一般使用 Redis ,比較大型的項目我們一般一會使用orcal
㈡ 資料庫緩存機制是什麼緩存是如何作用資料庫
緩存的介質一般是內存,所以讀寫速度很快。但如果緩存中存放的數據量非常大時,也會用硬碟作為緩存介質。緩存的實現不僅僅要考慮存儲的介質,還要考慮到管理緩存的並發訪問和緩存數據的生命周期。
㈢ 大數據常用哪些資料庫
通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如MySQL、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比較小型的Access等等資料庫,這些資料庫支持復雜的SQL操作和事務機制,適合小量數據讀寫場景;但是到了大數據時代,人們更多的數據和物聯網加入的數據已經超出了關系資料庫的承載范圍。
大數據時代初期,隨著數據請求並發量大不斷增大,一般都是採用的集群同步數據的方式處理,就是將資料庫分成了很多的小庫,每個資料庫的數據內容是不變的,都是保存了源資料庫的數據副本,通過同步或者非同步方式保證數據的一致性,每個庫設定特定的讀寫方式,比如主資料庫負責寫操作,從資料庫是負責讀操作,等等根據業務復雜程度以此類推,將業務在物理層面上進行了分離,但是這種方式依舊存在一定的負載壓力的問題,企業數據在不斷的擴增中,後面就採用分庫分表的方式解決,對讀寫負載進行分離,但是這種實現依舊存在不足,且需要不斷進行資料庫伺服器擴容。
NoSQL資料庫大致分為5種類型
1、列族資料庫:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面簡單介紹幾個
(1)Cassandra:Cassandra是一個列存儲資料庫,支持跨數據中心的數據復制。它的數據模型提供列索引,log-structured修改,支持反規范化,實體化視圖和嵌入超高速緩存。
(2)HBase:Apache Hbase源於Google的Bigtable,是一個開源、分布式、面向列存儲的模型。在Hadoop和HDFS之上提供了像Bigtable一樣的功能。
(3)Amazon SimpleDB:Amazon SimpleDB是一個非關系型數據存儲,它卸下資料庫管理的工作。開發者使用Web服務請求存儲和查詢數據項
(4)Apache Accumulo:Apache Accumulo的有序的、分布式鍵值數據存儲,基於Google的BigTable設計,建立在Apache Hadoop、Zookeeper和Thrift技術之上。
(5)Hypertable:Hypertable是一個開源、可擴展的資料庫,模仿Bigtable,支持分片。
(6)Azure Tables:Windows Azure Table Storage Service為要求大量非結構化數據存儲的應用提供NoSQL性能。表能夠自動擴展到TB級別,能通過REST和Managed API訪問。
2、鍵值資料庫:Redis、SimpleDB、Scalaris、Memcached等,下面簡單介紹幾個
(1)Riak:Riak是一個開源,分布式鍵值資料庫,支持數據復制和容錯。(2)Redis:Redis是一個開源的鍵值存儲。支持主從式復制、事務,Pub/Sub、Lua腳本,還支持給Key添加時限。
(3)Dynamo:Dynamo是一個鍵值分布式數據存儲。它直接由亞馬遜Dynamo資料庫實現;在亞馬遜S3產品中使用。
(4)Oracle NoSQL Database:來自Oracle的鍵值NoSQL資料庫。它支持事務ACID(原子性、一致性、持久性和獨立性)和JSON。
(5)Oracle NoSQL Database:具備數據備份和分布式鍵值存儲系統。
(6)Voldemort:具備數據備份和分布式鍵值存儲系統。
(7)Aerospike:Aerospike資料庫是一個鍵值存儲,支持混合內存架構,通過強一致性和可調一致性保證數據的完整性。
3、文檔資料庫:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面簡單介紹幾個
(1)MongoDB:開源、面向文檔,也是當下最人氣的NoSQL資料庫。
(2)CounchDB:Apache CounchDB是一個使用JSON的文檔資料庫,使用Javascript做MapRece查詢,以及一個使用HTTP的API。
(3)Couchbase:NoSQL文檔資料庫基於JSON模型。
(4)RavenDB:RavenDB是一個基於.NET語言的面向文檔資料庫。
(5)MarkLogic:MarkLogic NoSQL資料庫用來存儲基於XML和以文檔為中心的信息,支持靈活的模式。
4、圖資料庫:Neo4J、InfoGrid、OrientDB、GraphDB,下面簡單介紹幾個
(1)Neo4j:Neo4j是一個圖資料庫;支持ACID事務(原子性、獨立性、持久性和一致性)。
(2)InfiniteGraph:一個圖資料庫用來維持和遍歷對象間的關系,支持分布式數據存儲。
(3)AllegroGraph:AllegroGraph是結合使用了內存和磁碟,提供了高可擴展性,支持SPARQ、RDFS++和Prolog推理。
5、內存數據網格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面簡單介紹幾個
(1)Hazelcast:Hazelcast CE是一個開源數據分布平台,它允許開發者在資料庫集群之上共享和分割數據。
(2)Oracle Coherence:Oracle的內存數據網格解決方案提供了常用數據的快速訪問能力,一致性支持事務處理能力和數據的動態劃分。
(3)Terracotta BigMemory:來自Terracotta的分布式內存管理解決方案。這項產品包括一個Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop連接器。
(4)GemFire:Vmware vFabric GemFire是一個分布式數據管理平台,也是一個分布式的數據網格平台,支持內存數據管理、復制、劃分、數據識別路由和連續查詢。
(5)Infinispan:Infinispan是一個基於Java的開源鍵值NoSQL數據存儲,和分布式數據節點平台,支持事務,peer-to-peer 及client/server 架構。
(6)GridGain:分布式、面向對象、基於內存、SQL+NoSQL鍵值資料庫。支持ACID事務。
(7)GigaSpaces:GigaSpaces內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
㈣ 緩存系統中的主要使用的數據結構是什麼
緩存系統中的主要使用的數據結構是memcached。
memcached是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但被許多網站使用。這是一套開放源代碼軟體,以BSD license授權發布。
memcached的API使用三十二比特的循環冗餘校驗(CRC-32)計算鍵值後,將數據分散在不同的機器上。當表格滿了以後,接下來新增的數據會以LRU機制替換掉。
由於memcached通常只是當作緩存系統使用,所以使用memcached的應用程序在寫回較慢的系統時(像是後端的資料庫)需要額外的代碼更新memcached內的數據。
(4)緩存常用資料庫擴展閱讀:
一、存儲方式
為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。由於數據僅存在於內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。
另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的緩存。memcached本身是為緩存而設計的伺服器,因此並沒有過多考慮數據的永久性問題。
二、通信分布式
memcached盡管是「分布式」緩存伺服器,但伺服器端並沒有分布式功能。各個memcached不會互相通信以共享信息。那麼,怎樣進行分布式呢?這完全取決於客戶端的實現。本文也將介紹memcached的分布式。
㈤ Redis簡介以及和其他緩存資料庫的區別
Redis 是一個開源的內存中的數據結構存儲系統,它可以用作資料庫、緩存和消息中間件。
它支持多種類型的數據結構,如字元串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets或者是ZSet) 與范圍查詢, Bitmaps,Hyperloglogs 和 地理空間(Geospatial)索引半徑查詢。 其中常見的數據結構類型有String、List、Set、Hash、ZSet這5種。
㈥ 常用的內存緩存資料庫redis 讀什麼
網路redis,有個例句,裡面讀:瑞迪斯
㈦ 資料庫常見的數據類型大致分為幾類,請分別舉例
資料庫一般分為兩種類型:關系型資料庫和非關系型資料庫
關系型資料庫
關系型資料庫是最常見的數據,其內部採用庫表結構,每一條記錄可以記錄多個數據類型的數據.一條記錄內的數據彼此之間存在關系.
例如:
IDnameagesex
1張三12男
因為彼此之間存在關系,所以不論你搜索id=1/name=張三/age=12/sex=男都能搜出來這條記錄.
代表軟體:Mysql accessSQLServer Oracle
非關系型資料庫
非關系型資料庫是目前比較新的一種資料庫,特點就是數據全部由鍵值對(key/value)組成.獲取數據一般只通過鍵(key)來獲取.
例如:
IDValue
1aaa.avi
2bbb.MP4
這種資料庫優點是,速度快,需要明確的目標key來快速指定和獲取目標.一般目前在大數據存儲上體現著優勢.例如大型視頻庫,只需要知道視頻的id就能快速得知視頻位置.
當然這不是主要的,非關系型資料庫有個極大的優勢,就是一般都採用內存緩存方式存在.它們一般把數據拷貝一份放在內存中,這樣可以更加快速的讀取數據(內存的速度一般是硬碟的幾十倍).
非關系型資料庫另一個主要用途是快速緩存,即快速的緩存一些數據,但並不一定要長期保留,例如直播中的彈幕,一般都會採用非關系型資料庫來保存,到期之後批量寫入關系型資料庫保存,然後自我清空.
代表軟體:Mongodb Redis Memcache
實際使用
在實際使用中,一般都是關系型資料庫獨立使用,關系型資料庫+非關系型資料庫一起用這兩種方式.因為非關系型資料庫一般不用來存儲,所以還是需要關系型資料庫來保存一些數據.
總結
關系型資料庫:存儲長期穩定數據,例如會員信息等等.但是讀取寫入速度慢,高並發時較麻煩,容易產生瓶頸.
非關系型資料庫:存儲臨時數據或需要快速讀取數據,例如彈幕等.但是一般不用來保存數據,內存關機即清空.
㈧ 媒體緩存資料庫什麼意思
媒體緩存資料庫的意思就是緩存臨時文件緩存。
多媒體資料庫是資料庫技術與多媒體技術結合的產物。多媒體資料庫不是對現有的數據進行界面上的包裝,而是從多媒體數據與信息本身的特性出發,考慮將其引入到資料庫中之後而帶來的有關問題。
多媒體資料庫的研究途徑:
常用的有以下方式,完善面向對象資料庫,使之適合多媒體數據處理,以便逐步為用戶接受。在已有的關系資料庫中建立多媒體MIS及GIS。對關系資料庫進行簡單擴充,使之具有最簡單的多媒體功能。
如Oracle、Sybase等,都擴展了長欄位類型,可達2GB空間,存放各種多媒體數據。但這種擴充僅將多媒體數據以字元形式存儲,並未解決多媒體信息的檢索及處理問題。
系資料庫的理論與技術和面向對象資料庫的理論與技術結合起來,一方面利用關系資料庫已有的成熟技術可以快速而經濟地實現;另一方面將面向對象資料庫的部分技術擴展到關系資料庫中,使之具有面向對象資料庫的一些基本功能,引進超媒體機制。
㈨ 內存資料庫主流的有哪些,並給出各自特點!
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。
在實際應用中內存資料庫主要是配合oracle或mysql等大型關系資料庫使用,關注性能。
作用類似於緩存,並不注重數據完整性和數據一致性。
基於鍵值型的內存資料庫比關系型更加易於使用,性能和可擴展性更好,因此在應用上比關系型的內存資料庫使用更多。
比較FastDB、Memcached和Redis主流內存資料庫的功能特性。
FastDB的特點包括如下方面:
1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;
2、fastdb假定整個資料庫存在於RAM中,並且依據這個假定優化了查詢演算法和介面。
3、fastdb沒有資料庫緩沖管理開銷,不需要在資料庫文件和緩沖池之間傳輸數據。
4、整個fastdb的搜索演算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。
5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。
6、fastdb是一個面向應用的資料庫,資料庫表通過應用程序的類信息來構造。
FastDB不能支持Java API介面,這使得在本應用下不適合使用FastDB。
Memcached
Memcached是一種基於Key-Value開源緩存伺服器系統,主要用做資料庫的數據高速緩沖,並不能完全稱為資料庫。
memcached的API使用三十二位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。由於 memcached通常只是當作緩存系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程序更新memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一個高性能的key-value資料庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系資料庫起到很好的補充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。