在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    內(nèi)存數(shù)據(jù)庫(kù)

    內(nèi)存數(shù)據(jù)庫(kù)

    內(nèi)存數(shù)據(jù)庫(kù)從范型上可以分為關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)和鍵值型內(nèi)存數(shù)據(jù)庫(kù)。

    在實(shí)際應(yīng)用中內(nèi)存數(shù)據(jù)庫(kù)主要是配合oracle或mysql等大型關(guān)系數(shù)據(jù)庫(kù)使用,關(guān)注性能。

    作用類似于緩存,并不注重?cái)?shù)據(jù)完整性和數(shù)據(jù)一致性。

    基于鍵值型的內(nèi)存數(shù)據(jù)庫(kù)比關(guān)系型更加易于使用,性能和可擴(kuò)展性更好,因此在應(yīng)用上比關(guān)系型的內(nèi)存數(shù)據(jù)庫(kù)使用更多。

    比較FastDB、Memcached和Redis主流內(nèi)存數(shù)據(jù)庫(kù)的功能特性。

    FastDB的特點(diǎn)包括如下方面:

    1、FastDB不支持client-server架構(gòu)因而所有使用FastDB的應(yīng)用程序必須運(yùn)行在同一主機(jī)上;

    2、fastdb假定整個(gè)數(shù)據(jù)庫(kù)存在于RAM中,并且依據(jù)這個(gè)假定優(yōu)化了查詢算法和接口。

    3、fastdb沒(méi)有數(shù)據(jù)庫(kù)緩沖管理開(kāi)銷,不需要在數(shù)據(jù)庫(kù)文件和緩沖池之間傳輸數(shù)據(jù)。

    4、整個(gè)fastdb的搜索算法和結(jié)構(gòu)是建立在假定所有的數(shù)據(jù)都存在于內(nèi)存中的,因此數(shù)據(jù)換出的效率不會(huì)很高。

    5、Fastdb支持事務(wù)、在線備份以及系統(tǒng)崩潰后的自動(dòng)恢復(fù)。

    6、fastdb是一個(gè)面向應(yīng)用的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)表通過(guò)應(yīng)用程序的類信息來(lái)構(gòu)造。

    FastDB不能支持Java API接口,這使得在本應(yīng)用下不適合使用FastDB。

    Memcached

    Memcached是一種基于Key-Value開(kāi)源緩存服務(wù)器系統(tǒng),主要用做數(shù)據(jù)庫(kù)的數(shù)據(jù)高速緩沖,并不能完全稱為數(shù)據(jù)庫(kù)。

    memcached的API使用三十二位元的循環(huán)冗余校驗(yàn)(CRC-32)計(jì)算鍵值后,將資料分散在不同的機(jī)器上。當(dāng)表格滿了以后,接下來(lái)新增的資料會(huì)以LRU機(jī)制替換掉。由于 memcached通常只是當(dāng)作緩存系統(tǒng)使用,所以使用memcached的應(yīng)用程式在寫回較慢的系統(tǒng)時(shí)(像是后端的數(shù)據(jù)庫(kù))需要額外的程序更新memcached內(nèi)的資料。

    memcached具有多種語(yǔ)言的客戶端開(kāi)發(fā)包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。

    Redis

    Redis是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。redis的出現(xiàn),很大程度補(bǔ)償了memcached這類keyvalue存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。

    內(nèi)存數(shù)據(jù)庫(kù)是相對(duì)于磁盤數(shù)據(jù)庫(kù)來(lái)說(shuō)的。我們都知道我們經(jīng)常使用的關(guān)系型數(shù)據(jù)庫(kù),比如MySQL,它的數(shù)據(jù)文件最終是存儲(chǔ)到磁盤上的。而內(nèi)存數(shù)據(jù)庫(kù)則是將所有的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,磁盤和內(nèi)存在訪問(wèn)速率上不是一個(gè)量級(jí)的,完全沒(méi)有可比性。

    隨著內(nèi)存容量不斷加大、價(jià)格不斷下降,互聯(lián)網(wǎng)的流量越來(lái)越大的情況下,內(nèi)存數(shù)據(jù)庫(kù)逐步被廣泛應(yīng)用起來(lái)。

    應(yīng)用場(chǎng)景

  • 緩存數(shù)據(jù):將高頻訪問(wèn)的數(shù)據(jù)通過(guò)一定的機(jī)制加載到內(nèi)存中,減少應(yīng)用與數(shù)據(jù)庫(kù)的連接,極大的提高了應(yīng)用的性能;
  • 內(nèi)存計(jì)算:如果你的數(shù)據(jù)在內(nèi)存中,那么你可以充分利用CPU的資源去做數(shù)據(jù)的計(jì)算、聚合、查詢,而不用擔(dān)心數(shù)據(jù)庫(kù)是否能承受你的SQL查詢。
  • 主流的內(nèi)存數(shù)據(jù)庫(kù)

  • 關(guān)系型內(nèi)存數(shù)據(jù)庫(kù):H2、Apache Ignite、SQLite
  • H2:支持嵌入式,服務(wù)器和集群模式,支持內(nèi)存數(shù)據(jù)庫(kù),純Java開(kāi)發(fā)
  • Apache Ignite:高性能、集成化、分布式的內(nèi)存平臺(tái),他可以實(shí)時(shí)地在大數(shù)據(jù)集中執(zhí)行事務(wù)和計(jì)算,可以像操作數(shù)據(jù)庫(kù)一樣,操作內(nèi)存緩存
  • SQLite:小而精美,iOS和Android開(kāi)發(fā)本地?cái)?shù)據(jù)庫(kù)的不二之選
  • Key-Value內(nèi)存數(shù)據(jù)庫(kù):redis、Memcached
  • redis:支持String、Set、Hash、Sorted Set、List
  • Memcached:是一個(gè)簡(jiǎn)潔的、高性能的、分布式的內(nèi)存對(duì)象緩存系統(tǒng)
  • 傳統(tǒng)數(shù)據(jù)庫(kù)的內(nèi)存數(shù)據(jù)庫(kù)引擎:
  • MySQL Memory Engine
  • SQL Server 2016 In-Memory OLTP
  • 傳統(tǒng)數(shù)據(jù)庫(kù)提供的內(nèi)存數(shù)據(jù)庫(kù),將磁盤數(shù)據(jù)加載到內(nèi)存中,利用查詢引擎操作內(nèi)存數(shù)據(jù)
  • 總結(jié)

    以上是個(gè)人整理的一些內(nèi)存數(shù)據(jù)庫(kù),都是我們平常業(yè)務(wù)開(kāi)發(fā)時(shí)候多少都有用到的內(nèi)存數(shù)據(jù)庫(kù)。了解每一種內(nèi)存數(shù)據(jù)庫(kù)的特性,結(jié)合它們的優(yōu)缺點(diǎn)并應(yīng)用于不同的業(yè)務(wù)場(chǎng)景,才是正確的編碼之道。

    內(nèi)存數(shù)據(jù)庫(kù)不是銀彈,他也不能代替?zhèn)鹘y(tǒng)數(shù)據(jù)庫(kù),只有內(nèi)存數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)(磁盤數(shù)據(jù)庫(kù))強(qiáng)強(qiáng)聯(lián)手、互相補(bǔ)充才能發(fā)揮出數(shù)據(jù)存儲(chǔ)技術(shù)的強(qiáng)大威力!

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    (0)
    用戶投稿
    上一篇 2022年6月19日 06:29
    下一篇 2022年6月19日 06:29

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息