其實redis就是一種高級的以鍵值對形式存儲數據的數據庫,而它的好處就是他可以支持數據的持久化,其實redis之所以會有這樣的優點,主要是因為,redis的數據都是存放在內存中的,如果不配置持久化,那么在redis進行重啟的時候,就會造成數據的丟失,于是redis開啟了數據的持久化功能,將所有的數據保存到磁盤中,當redis重啟之后,就可以直接從磁盤中恢復數據,所以redis的持久化功能,主要就是為了防止服務器宕機而造成的數據丟失。
專注于為中小企業提供成都網站設計、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業易縣免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了1000+企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。圖片
redis也提供了兩種不同的持久化方式:
第一種是:RDB持久化,RDB是Redis DataBase的縮寫,redis默認的持久化方式,簡單來講就是將redis在內存中的數據庫記錄按照指定的時間轉存到磁盤當中,其實就是一定時間間隔內對你的數據進行一個快照存儲,在默認的情況下,redis在完成快照存儲后就會將這些數據保存在一個dump.rdb的文件中,當redis運行的時候,RDB就會將內存中的數據集存儲到磁盤當中,在redis進行重啟的時候,就可以通過載入RDB文件到RDB程序進行數據的同步恢復。
優點:因為服務區在執行保存dump.rdb文件時,首先需要redis去調用forks()時,就會同時擁有父進程和子進程,而子進程其實就是將這些數據寫入到一個臨時的RDB文件當中,當子進程完成寫入后,redis就會用一個新的RDB文件替換掉舊的RDB文件,并且將舊的RDB文件刪除,所以因為這樣的工作方式,RDB持久化方式就只有一個dump.rdb文件,非常方便持久化,而且由子進程完成寫的操作,讓主進程可以繼續處理命令,這樣可以使得IO大化,使用單獨的子進程來進行持久化,主進程就不會進行任何的IO操作,這樣可以保證redis的高性能。
缺點:因為RDB是按照指定的時間每隔一段時間就要進行一次持久化,如果在持久化的過程中redis發生故障,那么依然會發生數據丟失,所以一般都在數據要求不太嚴謹的時候使用這種方式。
第二種:AOF持久化,AOF是Append Only File的縮寫,默認AOF是不開啟的,需要在redis.conf配置文件中手動開啟,這種持久化方式就是將redis執行的每一次命令記錄到單獨的日志文件當中,當還原數據時,只需要將這些備份的指令再重新執行一遍即可。redis的配置文件中存在三種不同的AOF持久化方式,分別是:
appendfsync always:每次有數據修改發生時都會寫入AOF文件,這樣會嚴重降低Redis的速度
appendfsync everysec:每秒鐘同步一次,將多個寫命令同步到硬盤
appendfsync no:讓操作系統決定何時進行同步
而且由于AOF持久化對日志文件的寫入操作采用的是append模式,使用這種模式的好處就是,即使在寫入的過程中出現宕機現象,也不會破壞日志文件中已經存在的內容,然而如果我們本次操作只寫入了一半數據就出現了系統崩潰問題,也不用擔心,在redis下一次啟動之前,我們可以通過redis-check-aof工具來幫忙解決這種數據一致性的問題。
優點:數據安全,因為AOF有寫回策略機制,比如:always,意思就是可以在每個執行命令執行完之后,立刻同步的將日志寫回磁盤,而且AOF持久化快,能夠減少數據丟失的量,在配置了everysec的情況下最多只會丟失秒級數據。
缺點:在同等數據量的情況下,AOF文件的大小要比RDB文件大很多,如果使用它進行內存的恢復需要一定的時間。
針對以上闡述,在選擇持久化方式上,一般來說,如果想要達到足以媲美關系型數據庫的數據安全性,那么就應該同時使用兩種持久化功能(redis4.0開始支持RDB和AOF混合持久化),在這種情況下,當redis重啟的時候就會優先載入AOF文件來恢復原始數據,因為通常這種情況下,AOF文件保存數據集要比RDB文件保存數據集更加完整,如果你非常關心你的數據,但是仍然可以承受一些保持在分鐘之內的數據丟失,那么你可以只選擇使用RDB持久化,因為它可以更快,但是會有一些分鐘之內的數據丟失是它的缺點。
https://b23.tv/8mP4VCF
https://b23.tv/HtAoFSY
https://b23.tv/AQfC1t0
https://b23.tv/SxNsEZm
有很多人都只使用AOF持久化,但其實不太推薦,因為定時生成RDB快照非常方便于進行數據庫的備份,并且RDB恢復數據集的速度也要比AOF恢復的速度快,除此之外,使用RDB也可以有效規避AOF程序的bug,當然如果你只希望你的數據在服務器運行的時候存在,也可以不選擇使用任何持久化方式。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
本文題目:如何理解redis持久化,有幾種方式?-創新互聯
本文路徑:http://vcdvsql.cn/article36/dgoopg.html
成都網站建設公司_創新互聯,為您提供網站營銷、網站導航、網站制作、外貿網站建設、網站設計、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯