7.redis的持久化

什麼是持久化?
持久化就是把內存中的數據寫到磁盤中去,防止服務器宕機後內存數據的丟失,redis提供了兩種持久化的方式:RDB(默認)和AOF。

簡介

數據存放於:
內存:高效,斷點(關機)內存數據會丟失
硬盤:讀寫速度慢與內存,斷點數據不會丟失

redis持久化支持兩種方式:RDB和AOF,RDB一定時間取存儲文件,AOF默認每秒去存儲歷史命令。

RDB

rdb是redis DataBase的縮寫
功能核心函數是dbsave(生成rdb文件)和rdbLoad(從文件加載到內存)兩個函數
在這裏插入圖片描述

RDB:是redis默認的持久化機制,這種方式是將內存中的數據以快照的方式寫到二進制文件中,默認的文件名爲dump.rdb

優點:
快照保存數據極快,還原數據極快,適用於災難備份
缺點:
小內存機器不適合使用rdb

AOF

由於快照方式是在一定時間間隔內做一次的,所以如果redis意外down掉的話,就會丟一最後一次虧按照後的所有修改,如果應用要求數據不能修改的話,就可以採用AOF的方式

Append-only file:aof比快照方式有更好的持久化性,是由於在使用redis的aof方式時,redis會將每一個收到的寫命令通過write函數追加到appendonly.aof文件中,當redis重啓時會通過重新執行新文件中保存的寫命令來在內存中重建整個數據庫的內容

產生的問題:
aof的方式也帶來了一定的問題,持久化文件會變得越來越大,例如我們調用incr test命令100次,文件中鼻血保存全部的100條命令,其實有99條是多餘的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章