內存數據庫有哪些?
內存數據庫是相對于磁盤數據庫來說的。我們都知道我們經常使用的關系型數據庫,比如MySQL,它的數據文件最終是存儲到磁盤上的。而內存數據庫則是將所有的數據存儲在內存中,磁盤和內存在訪問速率上不是一個量級的,完全沒有可比性。
隨著內存容量不斷加大、價格不斷下降,互聯網的流量越來越大的情況下,內存數據庫逐步被廣泛應用起來。
應用場景緩存數據:將高頻訪問的數據通過一定的機制加載到內存中,減少應用與數據庫的連接,極大的提高了應用的性能;
內存計算:如果你的數據在內存中,那么你可以充分利用CPU的資源去做數據的計算、聚合、查詢,而不用擔心數據庫是否能承受你的SQL查詢。
主流的內存數據庫關系型內存數據庫:H2、Apache Ignite、SQLite
H2:支持嵌入式,服務器和集群模式,支持內存數據庫,純Java開發Apache Ignite:高性能、集成化、分布式的內存平臺,他可以實時地在大數據集中執行事務和計算,可以像操作數據庫一樣,操作內存緩存SQLite:小而精美,iOS和Android開發本地數據庫的不二之選Key-Value內存數據庫:redis、Memcached
redis:支持String、Set、Hash、Sorted Set、ListMemcached:是一個簡潔的、高性能的、分布式的內存對象緩存系統傳統數據庫的內存數據庫引擎:
MySQL Memory EngineSQL Server 2016 In-Memory OLTP傳統數據庫提供的內存數據庫,將磁盤數據加載到內存中,利用查詢引擎操作內存數據總結以上是個人整理的一些內存數據庫,都是我們平常業務開發時候多少都有用到的內存數據庫。了解每一種內存數據庫的特性,結合它們的優缺點并應用于不同的業務場景,才是正確的編碼之道。
內存數據庫不是銀彈,他也不能代替傳統數據庫,只有內存數據庫與傳統數據庫(磁盤數據庫)強強聯手、互相補充才能發揮出數據存儲技術的強大威力!