亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決redis宕機的問題

發布時間:2020-09-23 13:27:16 來源:億速云 閱讀:198 作者:小新 欄目:關系型數據庫

這篇文章給大家分享的是有關解決redis宕機的問題的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

我們都知道 Redis 的數據全部在內存里,如果突然宕機,數據就會全部丟失,那應該怎么解決呢?

因此必須有一種機制來保證Redis的數據不會因為故障而丟失,這種機制就是Redis的持久化機制。

Redis 的持久化機制有兩種,第一種是快照,第二種是 AOF 日志。快照是一次全量備份,AOF 日志是連續的增量備份。快照是內存數據的二進制序列化形式,在存儲上非常緊湊,而 AOF 日志記錄的是內存數據修改的指令記錄文本。AOF 日志在長期的運行過程中會變得無比龐大,數據庫重啟時需要加載 AOF 日志進行指令重放,這個時間就會無比漫長,所以需要定期進行 AOF 重寫,給 AOF 日志進行瘦身。

快照原理

我們知道 Redis 是單線程程序,這個線程要同時負責多個客戶端套接字的并發讀寫操作和內存數據結構的邏輯讀寫。

在服務線上請求的同時,Redis 還需要進行內存快照,內存快照要求 Redis 必須進行文件 IO 操作,可文件 IO 操作是不能使用多路復用 API。
這意味著單線程在服務線上請求的同時,還要進行文件 IO 操作,而文件 IO 操作會嚴重拖累服務器請求的性能。

還有個重要的問題,為了不阻塞線上的業務,Redis 就需要一邊持久化,一邊響應客戶端的請求。持久化的同時,內存數據結構還在改變,比如一個大型的 hash 字典正在持久化,結果一個請求過來把它給刪掉了,可是還沒持久化完呢,這該怎么辦呢?

Redis 使用操作系統的多進程 COW(Copy On Write)機制來實現快照持久化,這個機制很有意思,也很少人知道。

AOF原理

AOF 日志存儲的是 Redis 服務器的順序指令序列,AOF 日志只記錄對內存進行修改的指令記錄。

假設 AOF 日志記錄了自 Redis 實例創建以來所有的修改性指令序列,那么就可以通過對一個空的 Redis 實例順序執行所有的指令——也就是“重放”,來恢復 Redis 當前實例的內存數據結構的狀態。

Redis 會在收到客戶端修改指令后,進行參數校驗、邏輯處理,如果沒問題,就立即將該指令文本存儲到 AOF 日志中,也就是說,先執行指令才將日志存盤。這點不同于 leveldb、hbase 等存儲引擎,它們都是先存儲日志再做邏輯處理。

Redis 在長期運行的過程中,AOF 的日志會越變越長。如果實例宕機重啟,重放整個 AOF 日志會非常耗時,導致長時間 Redis 無法對外提供服務。所以需要對 AOF 日志瘦身。

感謝各位的閱讀!關于解決redis宕機的問題就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆树市| 开江县| 西华县| 高平市| 堆龙德庆县| 武平县| 定远县| 深泽县| 勃利县| 收藏| 出国| 疏附县| 九龙坡区| 平原县| 建阳市| 大化| 陕西省| 广昌县| 阿克| 通山县| 张北县| 石渠县| 鄂托克旗| 远安县| 麦盖提县| 白山市| 石首市| 日喀则市| 勃利县| 尉氏县| 从化市| 澄江县| 长春市| 赤峰市| 治多县| 习水县| 新野县| 丹阳市| 方城县| 沽源县| 康马县|