1. 程式人生 > >Redis之aof日誌持久化

Redis之aof日誌持久化

上篇我們講到redis的rdb持久化操作,有一個問題就是在1分鐘間隔中突然斷電,造成這段間隔的資料沒有持久化到磁碟中,造成資料丟失。
解決辦法就是用redis的aof(append only file)做日誌持久化。簡單說就是把每一條操作命令都寫到檔案中,下次恢復的時候重新執行這些命令就做到了資料恢復。具體配置還是在redis.conf中:

appendonly yes #是否僅要日誌
appendfsync no # 系統緩衝,統一寫,速度快
appendfsync always # 系統不緩衝,直接寫,慢,丟失資料少
appendfsync everysec #折中,每秒寫1次

appendonly是否開啟aof服務,appendfsync則是將操作命令寫入到檔案的頻率(no表示由系統緩衝決定什麼時候aof,always則是每執行一條命令就寫入日誌檔案中,效率不高,everysec每秒寫一次)。

no-appendfsync-on-rewrite no #正在匯出rdb快照的過程中,要不要停止同步aof

在做rdb的時候停止aof,節省io。那麼你會問,rdb一般持久化很大的資料,比如幾十個G,肯定需要很多時間來做這個操作,停止同步aof,那這個過程的資料不就沒有了?答案是否定的,因為這個過程中所有的操作快取在記憶體的佇列裡, rdb完成後,統一操作。

appendfilename ./appendonly.aof  #檔案路徑

上述aof的基本配置就完成了。我們在配置aof頻率的時候採用折中的方法,沒過一秒aof一次,這樣即使丟資料也只丟失了一秒的資料,相比rdb好了很多。(注意rdb和aof一般都是可以同時開啟的)
但是又有一個問題,比如:

incr number  // 1
incr number //  2
incr number //  3
...

一個key被重複aof了多次,命名就是set number 3一條命令就可以完成的,卻寫入了多次,這樣勢必會造成aof檔案過大,這個時候就需要aof重寫。

auto-AOF-rewrite-percentage 100 當前aof檔案是上次重寫是大N%時重寫
auto-AOF-rewrite-min-size 64mb aof重寫至少要達到的大小

上述就是配置aof重寫的引數。重寫後aof檔案體積會明顯變小,原因就類似上述例子,將一條命令逆化成一條命令。
要做aof重寫測試還是可以用./bin/redis-benchmark來模擬命令。或者直接用beginwriteaof命令來直接重寫。
總結:這兩篇我們大致講了redis的兩種持久化方式rdb和aof,一般我們都是一起使用。rdb持久化間隔時間長,因為要將大量資料持久化到磁碟中,但是恢復速度快,因為都是二進位制檔案。aof安全,因為可以設定命令的寫入日誌檔案的頻率,比如每條命令都寫入,安全性高,但是效率相對低。

相關推薦

Redisaof日誌持久化

上篇我們講到redis的rdb持久化操作,有一個問題就是在1分鐘間隔中突然斷電,造成這段間隔的資料沒有持久化到磁碟中,造成資料丟失。 解決辦法就是用redis的aof(append only file)做日誌持久化。簡單說就是把每一條操作命令都寫到檔案中,下次

redis持久化 aof日誌

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

進階的Redis數據持久化RDB與AOF

加載數據 意思 tro 關註 數據持久化 -o blur 計數 化工 大家都知道,Redis之所以性能好,讀寫快,是因為Redis是一個內存數據庫,它的操作都幾乎基於內存。但是內存型數據庫有一個很大的弊端,就是當數據庫進程崩潰或系統重啟的時候,如果內存數據不保存的話,裏面的

Redis數據持久化RDB與AOF

初始化 www. 大量數據 持久化 多次 功能 小時 pen 100% Redis之數據持久化RDB與AOF https://www.cnblogs.com/zackku/p/10087701.html 大家都知道,Redis之所以性能好,讀寫快,是因為Redis是一個內存

RedisAOF重寫及其實現原理

() 相同 http 客戶 命令 unix comm 執行命令 item Reference: https://blog.csdn.net/hezhiqiang1314/article/details/69396887 AOF 重寫AOF 持久化是通過保存被執行的寫命令

redis 持久化存儲aof和設置密碼

redis 設置密碼 redis aofRedis 進入Redis設置密碼redis 127.0.0.1:6379[1]> config set requirepass my_redis OK [root@jcsjzx2017 ~]# redis-cli 127.0.0.1:6379> co

進階的Redis資料持久化RDB與AOF

大家都知道,Redis之所以效能好,讀寫快,是因為Redis是一個記憶體資料庫,它的操作都幾乎基於記憶體。但是記憶體型資料庫有一個很大的弊端,就是當資料庫程序崩潰或系統重啟的時候,如果記憶體資料不儲存的話,裡面的資料就會丟失不見了。這樣的資料庫並不是一個可靠的資料庫。 所以資料的持久化是記憶體型資料庫的重中

Redis-持久化AOF

上一篇中,我們說了Redis持久化中的RDB。今天,我們詳細學習一下AOF持久化機制的實戰。 一、如何配置AOF持久化機制 預設情況下,redis是不開啟AOF持久化的。我們需要手動將配置檔案中的appendonly改成yes,表示開啟AOF持久化機制。在生產環境中,一般來說都會開啟AO

redis持久化機制(AOF和RDB)

redis中文官網:redis持久化 redis支援兩種持久化方式:RDB方式和AOF方式 一、RDB方式 在預設情況下,Redis將資料庫快照儲存在名字為dump.rdb的二進位制檔案中。你可以對Redis進行設定,讓它在“N秒內資料集至少有M個改動”這一條件被滿足時,自動

redis總結(六)--持久化aof

本文內容來自尚矽谷任務19:Redis_持久化之AOF http://www.gulixueyuan.com/course/44/task/1140/show 在看本文之前可先看redis總結(五)--RDBhttps://blog.csdn.net/lsx2017/article/d

RedisRDB和AOF持久化

一、RDB機制的優勢和略施 RDB持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁碟。 也是預設的持久化方式,這種方式是就是將記憶體中資料以快照的方式寫入到二進位制檔案中,預設的檔名為dump.rdb。   可以通過配置設定自動做快照持久化的方式。我們可以配置redis

Redis學習——Redis持久化AOF備份方式儲存資料

新技術的出現一定是在老技術的基礎之上,並且完善了老技術的某一些不足的地方,新技術和老技術就如同JAVA中的繼承關係。 子類(新技術)比父類(老技術)更加的強大! 在前面介紹了 Redis學習——Redis持久化之RDB備份方式儲存資料之後,下面在整理和學習

6-Redis持久化 AOF

2017-01-01 16:42:13 該系列文章連結NoSQL 資料庫簡介Redis的安裝及及一些雜項基礎知識Redis 的常用五大資料型別(key,string,hash,list,set,zset)Redis 配置檔案介紹 Redis 持久化之RDB Redis 持久化之AOFRedis 主從複製

redis持久化AOF

strong 不可 font red 完成 style 形式 日誌 str 一、是什麽   以日誌的形式記錄每個寫操作,將redis執行過的所有寫指令記錄下來(讀操作不記錄),只許追加文件但不可以改寫文件,redis啟動之初會讀取該文件重新構建數據,換言之,redis重啟的

Redis 持久化 AOF 配置詳解

############################## APPEND ONLY MODE ############################### # By default Redis asynchronously dumps the datase

Redis系列----Redis的兩種持久化機制(RDB和AOF)

Redis的兩種持久化機制(RDB和AOF) 什麼是持久化    Redis的資料是儲存在記憶體中的,記憶體中的資料隨著伺服器的重啟或者宕機便會不復存在,在生產環境,伺服器宕機更是屢見不鮮,所以,我們希望Redis能夠將資料從記憶體中以某種形式儲存到磁碟中,使得重啟的時候可以載入磁碟中的檔案記錄恢復資料,這一

Redis基礎篇(三)持久化AOF日誌

Redis是記憶體資料庫,但是一旦伺服器宕機,記憶體中的資料將會全部丟失。 最簡單的恢復方式是從後端資料庫恢復,但這種方式有兩個問題: 頻繁訪問資料庫,會給資料庫帶來巨大的壓力; 從資料庫中讀取相比從Redis中讀取要慢很多,會導致應用響應變慢 因此,Redis要實現持久化,避免從後端資料庫中進行恢復。

12.redisAOF持久化深入講解各種操作和相關實驗

自動 percent fork 日誌 內存數據 文件中 aof 增長 機器 1、AOF持久化的配置 2、AOF持久化的數據恢復實驗3、AOF rewrite4、AOF破損文件的修復5、AOF和RDB同時工作 ---------------------------------

ELK生產日誌收集構架(filebeat-logstash-redis-logstash-elasticsearch-kibana)

mes 日誌log ruby 直接 search debug 存儲 code stdout  本次構架圖如下   說明:   1,前端服務器只啟動輕量級日誌收集工具filebeat(不需要JDK環境)   2,收集的日誌不進過處理直接發送到redis消息隊列   3,

redis Redis持久化配置

持久 mes dbf ESS -m 解決 所有 lena 檢驗 Redis持久化配置 Redis的持久化有2種方式 1快照 2是日誌 Rdb快照的配置選項 save 900 1 // 900內,有1條寫入,則產生快照 save 300 1000