redis持久化

redis數據是存放在內存中的,如果服務掛了,進程被kill,那麼重啓後,數據就沒了。
故需要做持久化,一般兩種方式。

參考網址:http://blog.csdn.net/gzh0222/article/details/8482525

1.RDB
RDB就是Snapshot快照存儲,是默認的持久化方式。
可理解爲半持久化模式,即按照一定的策略週期性的將數據保存到磁盤。
對應產生的數據文件爲dump.rdb,通過配置文件中的save參數來定義快照的週期。

下面是默認的快照設置:
save 900 1 #當有一條Keys數據被改變時,900秒刷新到Disk一次
save 300 10 #當有10條Keys數據被改變時,300秒刷新到Disk一次
save 60 10000 #當有10000條Keys數據被改變時,60秒刷新到Disk一次

RDB有它的不足,就是一旦redis出現問題,那麼我們的RDB文件中保存的數據並不是全新的。
從上次RDB文件生成到Redis停機這段時間的數據全部丟掉了。

2.AOF
AOF(Append-Only File)比RDB方式有更好的持久化性。
由於在使用AOF持久化方式時,Redis會將每一個收到的寫命令都通過Write函數追加到文件中,類似於MySQL的binlog。
當Redis重啓是會通過重新執行文件中保存的寫命令來在內存中重建整個數據庫的內容。

目前,通常的集羣設計思路,Master上Snapshot和AOF都不做,來保證Master的讀寫性能,而Slave上則同時開啓Snapshot和AOF來進行持久化,保證數據的安全性。

Redis允許同時開啓AOF和RDB,既保證了數據安全又使得進行備份等操作十分容易。此時重新啓動Redis後Redis會使用AOF文件來恢復數據,因爲AOF方式的持久化可能丟失的數據更少

一般要求不高的,aof即可,指定時間間隔,比如1秒,10秒

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