1. 程式人生 > >Redis持久化方式介紹

Redis持久化方式介紹

  Redis的持久化方法持久化方法有RDB檔案和AOF檔案兩種。下面主要介紹兩種持久化方法的原理缺點以及我在做交易系統非同步化改造專案時用到redis的場景。

1 RDB檔案

  RDB檔案是一個經過壓縮的二進位制檔案,通過這個檔案可以還原生成RDB檔案時的資料庫狀態。RDB檔案是直接儲存在硬碟中的,所以即使Redis宕機也可以通過RDB檔案恢復。生成RDB檔案的Redis命令有SAVE和BGSAVE兩個。

1.1 SAVE命令

  Redis是單程序工作的,SAVE命令會阻塞Redis伺服器程序,直到RDB檔案建立完成之前,伺服器不能接受任何處理命令。

1.2 BGSAVE命令

  不同於SAVE命令,BGSAVE通過子程序建立RDB檔案。當接收到BGSAVE命令後,Redis主程序會fork一個子程序負責建立RDB檔案,Redis此時還可以繼續處理客戶端命令。BGSAVE執行期間如果客戶端再次傳送BGSAVE時會被拒絕,防止爭用rdbSave。同樣客戶端傳送SAVE也會被拒絕。

1.3 RDB檔案載入

  當RDB檔案載入時,Redis會被阻塞,直到檔案載入完成。

2 AOF檔案

  AOF檔案檔案是Redis提供的另一種持久化方案,他記錄Redis伺服器的執行命令還記錄資料庫的狀態(和MySQL的Binlog有點類似)。AOF命令中記錄的是純文字格式的命令。AOF持久化的過程分為命令追加、檔案寫入和檔案同步三個過程。

2.1 命令追加

  當AOF持久化功能開啟時,伺服器在執行完一條命令後會以協議格式將執行完的命令追加到aof_buf緩衝區的末尾。

2.2 檔案寫入與同步

  Redis服務程序是個事件迴圈,伺服器每次在執行完一次事件之前都會呼叫flushAppendOnlyFile決定是否將aof緩衝區中的內容儲存到AOF檔案中。Redis伺服器根據配置appendfsync決定同步策略,Redis為appendfsync提供了三種配置,分別為always、everysec、no。
  當配置為always時,伺服器每次事件迴圈都會將緩衝區中的所有內容都寫到檔案中,速度最慢但是最安全。
  當配置為everysec時,伺服器每隔1秒回將快取中資料寫到檔案中,速度夠快,最多丟失1秒的資料。
  當配置為no時,由作業系統決定什麼時間將快取中內容寫入到AOF檔案中。

2.3 資料還原

  Redis伺服器利用AOF還原的原理是建立一個不帶網路連線的偽客戶端執行AOF中儲存的命令即可。

2.4 缺點

  AOF檔案持久化得缺點是AOF檔案往往會過大,雖然Redis提供了檔案重寫機制,但是在操作較多的時候AOF檔案仍會很大。

3 交易系統場景Redis使用

  我們交易系統Redis只當快取用,並且不開啟持久化功能,redis中的資料通過訊息佇列(kafka)同步到MySQL中,通過MySQL保證資料完整性、一致性。交易是個高頻寫入、峰值寫入會特別大的系統,由上面分析的Redis兩種持久化方案都會導致系統性能劇烈下降。 

相關推薦

Redis持久化方式介紹

  Redis的持久化方法持久化方法有RDB檔案和AOF檔案兩種。下面主要介紹兩種持久化方法的原理缺點以及我在做交易系統非同步化改造專案時用到redis的場景。 1 RDB檔案   RDB檔案是一個經過壓縮的二進位制檔案,通過這個檔案可以還原生成RDB檔案時

Redis持久化方式

很好 conf 一個 文件名 重新 sna 條件 有一個 一次 Snapsotting(快照)方式 snapsotting是默認方式,(把數據做一個備份,將數據存儲在文件) 這種方式將內存中數據照快照方式寫到二進制文件中.默認的文件名為“dump.rd

Redis持久化方式RDB與AOF詳解

redis持久化 rdb aof 優勢 管理參數 前言Redis提供了兩種數據存儲方式,分別是:cache-only && persistence;cache-only顧名知義,是用與緩存服務的,數據在服務器終止後將消失,在此模式下將不存在"數據恢復"的方式,是一種安全性低

redis 持久化方式

目的 .net sts nap auto span 通道 lock 同時 對於persistence持久化存儲,Redis提供了兩種持久化方法: Redis DataBase(簡稱RDB) 執行機制:快照,直接將databases中的key-value的二進制形式

三種資料持久化方式介紹(轉載)

通過專案,我們瞭解到EF框架有三種資料持久化的方式,也就是標題中我所提到的三種。那麼這些方式之間又有什麼聯絡和區別呢?     篇幅原因,本篇部落格不再分別介紹每種方法如何實現的了,大家用的時候可以去Sou~一下。       先分別介紹

redis持久化方式:RDB 和 AOF

Redis持久化 Redis 提供了多種不同級別的持久化方式: RDB 持久化可以在指定的時間間隔內生成資料集的時間點快照(point-in-time snapshot)。 AOF 持久化記錄伺服器執行的所有寫操作命令,並在伺服器啟動時,通過重新執行這些命令來還原資料集

Redis持久化方式RBD和AOF對比

Redis的持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢,本文將對此進行介紹。 RDB機制的策略 RDB持久化是指在指定的時間間隔內將記憶體中的資料和操作通過快照的方式儲存到red

Redis持久化方式AOF和RDB

正常 就會 100% 傳輸 關閉 操作系統 響應 模式 日誌記錄 Redis持久化方式: 1、RDB Redis DB 2、AOF AppendOnlyFile 默認關閉 RDB方式: 默認情況下,Redis將數據庫快照保存在名字為dump.rdb的二進制文件中

Redis 持久化,寫入磁盤的方式

磁盤空間 後來 放棄 software gre cat wap adding redis設計 Redis是一個支持持久化的內存數據庫=>也就是說redis需要經常將內存中的數據同步到磁盤來保證持久化。 redis支持四種持久化方式, 一是 Snapshotting(快

redis 持久化的兩種方式

itl note 註定 line end 技術分享 大於等於 默認 更改 一:快照模式   或許在用Redis之初的時候,就聽說過redis有兩種持久化模式,第一種是SNAPSHOTTING模式,還是一種是AOF模式,而且在實戰場景下用的最多的 莫過於SNAPSHO

Redis持久化磁盤IO方式及其帶來的問題   有Redis線上運維經驗的人會發現Redis在物理內存使用比較多,但還沒有超過實際物理內存總容量時就會發生不穩定甚至崩潰的問題,有人認為是基於快照方式

發出 != hot server 磁盤io loaddata set 自動 選擇 轉自:http://blog.csdn.net/kaosini/article/details/9176961 一、對Redis持久化的探討與理解 redis是一個支持持久化的內存數據庫

redis持久化的幾種方式

但是 工作 http 計算 targe pen 化工 index 數據安全 Redis是一種高級key-value數據庫。它跟memcached類似,不過數據可以持久化,而且支持的數據類型很豐富。有字符串,鏈表,集 合和有序集合。支持在服務器端計算集合的並,交和補集(d

Redis持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢

plain 同步數據 pen toc 默認 ocl 好的 dfs 操作系統 RDB機制的策略 RDB持久化是指在指定的時間間隔內將內存中的數據和操作通過快照的方式保存到redis bin目錄下的一個默認名為 dump.rdb的文件,可以通過配置設置自動的快照持久化的

redis持久化的兩種方式

第一條 客戶端 效率 推薦 利用 每次 破壞 高可用性 程序 Redis的所有數據都是保存在內存中,然後不定期的通過異步方式保存到磁盤上(這稱為“半持久化模式”);也可以把每一次數據變化都寫入到一個append only file(aof)裏面(這稱為“全持久化模式”)。

21.9 redis介紹;21.10 redis安裝;21.11 redis持久化;21.12

redis數據類型21.9 redis介紹1. Redis和Memcached類似,也屬於k-v數據存儲2. Redis官網redis.io, 當前最新穩定版4.0.13. 支持更多value類型,除了和string外,還支持hash、lists(鏈表)、sets(集合)和sorted sets(有序集合)4

21.9 redis介紹 21.10 redis安裝 21.11 redis持久化 21.12 re

新浪 配置 mys comm follow cor 這樣的 time ofo 21.9 redis介紹Redis和Memcached類似,也屬於k-v數據存儲Redis官網redis.io, 當前最新穩定版4.0.1支持更多value類型,除了和string外,還支持has

redis 五大類型 、持久化方式以及主從(哨兵模式)

重連 smo daemonize als 清除 沒有 次數 追加 con 一、redis 五大類型: redis 鍵  keys *   exists key的名字,判斷某個key 是否存在   move key db 當前數據庫就沒有了,被移除了   ttl key 查看

redis持久化方式

應用程序 參數設置 了解 log 技術 不常用 一個 技術分享 條件 非常感謝《redis實戰》真本書,本文大多內容也參考了書中的內容。非常推薦大家看一下《redis實戰》這本書,感覺書中的很多理論性東西還是很不錯的。 為什麽本文的名字要加上春夏秋冬又一春,哈哈 ,這是一部

Redis事物特點和持久化方式

Redis的事物不支援完整的ACID,Redis雖然提供事物功能,但是Redis的事物和關係資料庫事務不可同日而語,Redis的事物只能保證隔離性和一致性(I和C),無法保證原子性和永續性(A和D),具體實現原理如下: 原子性         &

redis介紹redis安裝、redis持久化redis資料型別

一:redis介紹 Redis和Memcached類似,也屬於k-v資料儲存Redis官網redis.io, 當前最新穩定版4.0.1支援更多value型別,除了和string外,還支援hash、lists(連結串列)、sets(集合)和sorted sets(有序集合)redis使用了兩種檔案格式:全量資