1. 程式人生 > >20、怎麼保證redis掛掉之後再重啟資料可以進行恢復?

20、怎麼保證redis掛掉之後再重啟資料可以進行恢復?

1、面試題

redis的持久化有哪幾種方式?不同的持久化機制都有什麼優缺點?持久化機制具體底層是如何實現的?

2、面試官心裡分析

redis如果僅僅只是將資料快取在記憶體裡面,如果redis宕機了,再重啟,記憶體裡的資料就全部都弄丟了啊。你必須得用redis的持久化機制,將資料寫入記憶體的同時,非同步的慢慢的將資料寫入磁碟檔案裡,進行持久化。

如果redis宕機了,重啟啟動,自動從磁碟上載入之前持久化的一些資料,就可以了,也許會丟失少許資料,但是至少不會將所有資料都弄丟 。

這個其實一樣,針對的都是redis的生產環境可能遇到的一些問題,就是redis要是掛了再重啟,記憶體裡的資料不就全丟了?能不能重啟的時候把資料給恢復了?

3、面試題剖析

01、redis持久化機對於生產環境中的災難恢復的意義

很多同學,自己也看過一些redis的資料和書籍,當然可能也看過一些redis視訊課程所有的資料,其實都會講解redis持久化,但是有個問題,我到目前為止,沒有看到有人很仔細的去講解:

redis的持久化意義;

redis的持久化,RDB,AOF,區別;

各自的特點是什麼;

適合什麼場景;

redis的企業級的持久化方案是什麼;

是用來跟哪些企業級的場景結合起來使用的?

redis持久化的意義,在於故障恢復

比如你部署了一個redis,作為cache快取,當然也可以儲存一些較為重要的資料。如果沒有持久化的話,redis遇到災難性故障的時候,就會丟失所有的資料。如果通過持久化將資料搞一份兒在磁碟上去,然後定期比如說同步和備份到一些雲端儲存服務上去,那麼就可以保證資料不丟失全部,還是可以恢復一部分資料回來的。

 

redis持久化的意義.png

文集:https://www.jianshu.com/nb/32293473