国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > 什么是持久化數據結構?

            什么是持久化數據結構?

            來源:千鋒教育
            發(fā)布人:xqq
            時間: 2023-10-11 07:08:09 1696979289

            一、什么是持久化數據結構

            持久化存儲,其實主要是針對內存數據的,以典型的Redis來說,持久化存儲主要有三種方式:

            1、RDB

            RDB: 保存某個時間點的全量數據快照

            觸發(fā)方式

            1. save: 阻塞Redis的服務器進程,直到RDB文件被創(chuàng)建完畢

            2. bgsave: fork出子進程來創(chuàng)建RDB文件,不阻塞服務器進程, lastsave 指令可以查看最近的備份時間

            3. 根據redis.conf里的save m n配置定時觸發(fā)(用的是BGSAVE)

            4. 主從復制時,主節(jié)點自動觸發(fā)

            5. 執(zhí)行debug relaod命令

            6. 執(zhí)行shutdown且沒有開啟AOF持久化

            2、AOF

            AOF: 增量存儲命令

            觸發(fā)方式

            1. BGREWRITEAOF: 增量追加命令

            2. 根據redis.conf里的appendfsync配置定時觸發(fā)

            3. AOF文件重寫

            3、混合持久化

            為解決AOF文件啟動加載慢,不利于快速恢復的缺點,RedisV4.0提供了新的持久化方式——混合持久化。

            混合持久化的文件內容: [RDB file][AOF tail]

            持久化過程:

            1. 將重寫(rewrite)這一刻之前的數據做RDB快照處理

            2. 將RDB快照內容和AOF增量命令先后寫入新的AOF臨時文件

            3. 重寫完成后,對AOF臨時文件改名,并覆蓋舊的AOF文件

            在redis重啟的時候,可以先加載RDB文件,然后再重放增量的AOF日志就可以完全替代之前的AOF全量文件重放,因此能大幅提高重啟效率提高。

            延伸閱讀:

            二、可持久化實際應用

            1.幾何計算

            在幾何計算中有許多離線算法,例如懸線掃描法,其基本策略是一次掃描后給出所有詢問的回答,在時間復雜度分析相當優(yōu)異。但在強迫在線的情況下,每次都要進行一次懸線掃描,詢問操作的時間復雜度就從對數時間降為線性。

            為了解決時間復雜度上的問題,在這里可以引入可持久化的思維。我們將掃描線的時間軸作為一個變動依據,持久化相關的結構,只要我們能將詢問在對數時間內穿梭于這個時間軸,必能動態(tài)解決先前的問題。

            2.字串處理

            為了達到非常高效率的合并操作,防止大量重復性字串的生成伴隨的效能退化,使得各方面的操作都能遠低于線性操作。如C++中的rope就是一個可持久化的數據結構。不只是字串操作。若處理類型有大量重復操作,均可以考慮將數據結構進行可持久化處理,以達到壓縮時間開支的效果。

            3.版本回溯

            實際上就是對應大部分的應用軟體中的redo/undo。如果資料庫/操作變動為了高效率操作而會配上復雜的結構(并不像 hash, set 反轉操作只需要常數或對數時間),那么為了快速回推變動結果,持久化結構就是要減少 redo/undo 的花費。

            資料庫本身可以常數回推,紀錄變動的部分情況即可。而應用層的計算,大部分實作都是砍掉快取,并且重新計算出一份新的結構,有時候回推的變動大小為 m,為了重新計算結構而消耗了 n + m n+mn+m,如果 n nn 和 m mm 的差距非常大,那連續(xù)回推的體感就很糟糕。

            聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
            10年以上業(yè)內強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT