1. 程式人生 > >redis持久化方案

redis持久化方案

一、什麼是redis的持久化redis持久化的機制如下圖


二、redis持久化的兩種方式方式一:RDB將當前資料快照到.rdb格式檔案。方式二:AOF將寫操作追加到緩衝區,再將緩衝區的操作同步到磁碟。三、兩種持久化方式的對比1)RDB不能實時持久化資料,如果redis伺服器斷電可能存在丟失資料的風險。而AOF方式持久化做到實時實時持久化資料。2)載入RDB恢復資料遠快於AOF方式。因為RDB是二進位制資料,而AOF是日誌的形式。3)如果用高版本redis進行RDB持久化的檔案用到低版本redis啟動恢復會出現不相容的問題。四、RDB持久化(預設開啟這種方式)1)持久化分為手動自動兩種機制自動機制:
當redis啟動的時候初始化一個定時函式,每隔一段時間會執行一次bgsave,將記憶體中的資料dump到硬碟。手動機制:可以使用save或者bgsave命令手動將記憶體中的資料dump到磁碟。2)save和bgsave命令save命令:阻塞當前Redis主執行緒,直到RDB持久化過程完成為止,若記憶體例項比較大會造成長時間阻塞,線上環境不建議用它 bgsave命令redis程序執行fork操作建立子執行緒,由子執行緒完成持久化,阻塞時間很短(微秒級),是save指令的優化版本,在執行redis-cli shutdown關閉redis服務時,如果沒有開啟AOF持久化,自動執行bgsave。如下是bgsave流程圖

3)記憶體備份到磁碟步驟1 設定備份路徑:config set dir /usr/redis步驟2 使用命令:bgsave將檔案備份到/usr/redis4)將磁碟中的rdb檔案資料恢復到記憶體dump.rdb檔案放到redis安裝目錄與redis.conf同級目錄(/usr/redis),重啟redis即可。5)RDB持久化方式的優缺點優點:1.壓縮後的二進位制文,適用於備份、全量複製,用於災難恢復。       2.載入RDB恢復資料遠快於AOF方式。缺點:1.無法做到實時持久化,每次都要建立子程序,頻繁操作成本過高。         2.儲存後的二進位制檔案,存在老版本不相容新版本rdb檔案的問題。
五、AOF持久化(預設關閉的)1)AOF配置資訊(redis.conf)appendonly yes     //啟用aof持久化方式,預設是關閉的。# appendfsync always //每收到寫命令就立即強制寫入磁碟,最慢的,但是保證完全的持久化,不推薦使用appendfsync everysec //每秒強制寫入磁碟一次,效能和持久化方面做了折中,推薦# appendfsync no    //完全依賴os,效能最好,持久化沒保證(作業系統自身的同步)no-appendfsync-on-rewrite  yes  //正在匯出rdb快照的過程中,要不要停止同步aofauto-aof-rewrite-percentage 100  //aof檔案大小比起上次重寫時的大小,增長率100%,重寫auto-aof-rewrite-min-size 64mb   //aof檔案,至少超過64M,重寫2)AOF持久化流程 1.所有的寫入命令(set hset)append追加到aof_buf緩衝區中 2.AOF緩衝區向硬碟做sync同步 3.隨著AOF檔案越來越大,需定期對AOF檔案rewrite重寫,達到壓縮 4.當redis服務重啟,可load載入AOF檔案進行恢復AOF持久化流程:命令寫入(append),檔案同步(sync),檔案重寫(rewrite),重啟載入(load)
3)如何將aof檔案恢復到記憶體1.設定appendonly設定為yes。2.appendonly.aof放到dir引數指定的目錄3.啟動RedisRedis會自動載入appendonly.aof檔案。六、Redis重啟時載入RDB、aof檔案的順序1.當AOFRDB檔案同時存在時,優先載入AOF2.若關閉了AOF,載入RDB檔案3.載入AOF/RDB成功,redis重啟成功4.AOF/RDB存在錯誤,redis啟動失敗並列印錯誤資訊

相關推薦

Redis持久化方案RDB和AOF(理論)

redis持久化 RDB AOF redis和memcache的區別是什麽? 簡單來說,如果沒有持久化的redis,就和memcache一樣了,相當於一個緩存數據庫。redis是如何解決數據持久化的? redis有兩種持久化方案:RDB(Redis DataBases)和AOF(App

redis 第 10 篇 Redis持久化方案

Rdb方式   Redis預設的方式,redis通過快照來將資料持久化到磁碟中。 設定持久化快照的條件 在redis.conf中修改持久化快照的條件,如下:   持久化檔案儲存的目錄 在redis.conf中可以指定持久化檔案儲存的目錄

redis持久化方案:RDB和AOF

簡介: redis持久化主要是做災難恢復,資料恢復 redis持久化:RDB,AOF RDB和AOF兩種持久化機制的介紹 1.RDB持久化機制,對redis中的資料執行週期性的持久化(每隔指定的時間以快照的形式儲存到檔案當中,儲存的是資料檔案) 2.AOF機制對每條寫入命令作為

Redis持久化方案(伺服器宕機挽回資料)

Redis 資料都放在記憶體中。如果機器掛掉,記憶體的資料就不存在。 需要做持久化,講記憶體中的資料儲存在磁碟,下一次啟動的時候就可以恢復資料到記憶體中。        1.RDB   快照形式  (定期將當前時刻的資料儲存磁碟中)會產生一個dump.rdb檔案  

redis持久化方案

一、什麼是redis的持久化redis持久化的機制如下圖二、redis持久化的兩種方式方式一:RDB將當前資料快照到.rdb格式檔案。方式二:AOF將寫操作追加到緩衝區,再將緩衝區的操作同步到磁碟。三、兩種持久化方式的對比1)RDB不能實時持久化資料,如果redis伺服器斷電

淘淘商城——Redis持久化方案

Redis中設定key的過期時間Redis中的expire命令用於設定key的過期時間,以毫秒計。key過期後將不再可用。Redis中的expire命令基本語法如下:expire key second設定成功返回1。當key不存在或者不能為key設定過期時間時返回0。 設定k

Redis持久化方案詳解

Redis的資料回寫機制 Redis的資料回寫機制分同步和非同步兩種, 同步回寫即SAVE命令,主程序直接向磁盤迴寫資料。在資料大的情況下會導致系統假死很長時間,所以一般不是推薦的。 非同步回寫即BGSAVE命令,主程序fork後,複製自身並通過這個新的程序回寫磁碟,回寫

redis持久化方案(十)

方案分為兩種方式: 1>Rdb方式 介紹:redis預設的方式,redis通過快照來將資料持久化到磁碟中 a.設定持久化快照的條件 在redis.conf中修改持久化快照的條件,如下: 比如;如果在900秒之

redis持久化方案

默認 就會 接受 丟失 lena 退出 缺點 更改 啟動 Redis的高性能是由於其將所有數據都存儲在了內存中,為了使Redis在重啟之後仍能保證數據不丟失,需要將數據從內存中同步到硬盤中,這一過程就是持久化。 Redis支持兩種方式的持久化,一種是R

針對緩存在Redis中的聊天消息的持久化方案分析

消息 網絡 定制 源搭建 裏的 mysql body png mongo 選型依據 數據庫的選型主要考慮一下幾個方面: 數據庫本身是否收費 數據庫後期維護成本 是否支持水平及垂直擴展,及擴展的容易程度 業務數據本身特性 使用此數據庫的開發成本 由於此數據庫主要用來存儲緩

(三)Redis兩種持久化方案

根據 edit 接受 lang app append size aps pen Redis的持久化策略:2種 RDB方式的持久化是通過快照(snapshotting)完成的,當符合一定條件時Redis會自動將內存中的數據進行快照並持久化到硬盤。RDB是Redis默認采用

Redis學習筆記(5)—— Redis持久化方案&Redis的叢集搭建

一、Redis的持久化方案   Redis的高效能是由於其將所有資料都儲存在了記憶體中,為了使Redis在重啟之後仍能保證資料不丟失,需要將資料從記憶體中同步到硬碟中,這一過程就是持久化。        Redis支援兩種方式的持久化,一種是RDB方式,一種是AOF

REDIS學習(6)檢視redis狀態,以及rdb和aof兩種持久化方案的區別

在控制檯輸入info命令回車可以得到以下的資訊(也可以用 redis clients分別查詢資訊) redis_version:3.2.3伺服器版本 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:78f57

redis的兩種持久化方案

前言 人生在於折騰系列,網路,多執行緒等系列部落格樓主還在繼續折騰也不會放棄。這是全新的系列,快取的知識其實並不僅僅在於簡單的增刪改查,我覺得有必要全面深入的學習一波。記錄學習的過程與體悟。 RDB 什麼是RDB 對redis中的資料執行週期性的持久化,通過配置檔案中設定檢查間隔時間與備份觸發條件來對資料進行

玩轉redis持久化,阿里架構師給你來一篇方案介紹

一、基本介紹 本次演示使用的redis版本是3.2.100,作業系統是win10。 redis支援兩種持久化方案,RDB和AOF

Redis持久化--Redis宕機或者出現意外刪庫導致資料丟失--解決方案

echo編輯整理,歡迎轉載,轉載請宣告文章來源。歡迎新增echo微信(微訊號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!!! Redis持久化的方案其實是很多人接觸的比較少的,因為相對應的資料故障不會很多,一次初始化的設定就能保證後續故障

天天在用Redis持久化方案你又知道哪些?

前言 文章首發於微信公眾號【碼猿技術專欄】:天天用Redis,持久化方案有哪些你知道嗎? Redis目前已經成為主流的記憶體資料庫了,但是大部分人僅僅是停留在會用的階段,你真的瞭解Redis內部的工作原理嗎? 今天這篇文章將為大家介紹Redis持久化的兩種方案,文章將會從以下五個方面介紹: 什麼是RDB,R

redis持久化和復制原理

redisRedis提供了兩種不同的持久化方式: RDB:在指定的時間間隔內生成數據快照,以二進制進行存儲 AOF:記錄服務器執行的所有寫操作命令,並在服務器啟動時,通過重新執行這些命令來還原數據集新命令會被追加到文件的末尾,每隔一段時間在後臺對AOF文件進行重寫使AOF文件的體積不會超出保存數據所需實際大小

redis持久化

文件名 當前 onf don set for 內容 不能 span redis支持兩種持久化的方式,可以單獨使用或者結合起來使用 第一種:RDB方式(redis默認的持久化方式) 第二種:AOF方式 一、RDB rdb方式的持久化是通過

redis持久化之 aof日誌

bsp img png 常用 使用 app 日誌 back 現在 aof就是把執行的命令寫到文本文件裏面 aof使用過程 第一步: 修改配置文件,並啟動server 第二步, 當前目錄下面會生成一個 appendonly。aof文件,但是是空的     去