更新時間:2020-07-16 15:44:11 來源:動力節點 瀏覽1848次
Javaweb編程教程,Java作為應用于網絡的最好語言,前景無限看好。然而,就算用Java建造一個不是很煩瑣的web應用,也不是件輕松的事情。那么,具備JavaWeb開發能力需要掌握哪些知識?本文,小編就來詳細說說JavaWeb需要掌握的技術!
Redis持久化機制
數據持久化方式
Redis支持兩種數據持久化方式:RDB方式和AOF方式。前者會根據配置的規則定時將內存中的數據持久化到硬盤上,后者則是在每次執行寫命令之后將命令記錄下來。兩種持久化方式可以單獨使用,但是通常會將兩者結合使用。
RDB方式
RDB方式的持久化是通過快照的方式完成的。當符合某種規則時,會將內存中的數據全量生成一份副本存儲到硬盤上,這個過程稱作”快照”,Redis會在以下幾種情況下對數據進行快照:
根據配置規則進行自動快照;
用戶執行SAVE, BGSAVE命令;
執行FLUSHALL命令;
執行復制(replication)時。
快照生成原理:
快照執行的過程如下:
Redis使用fork函數復制一份當前進程(父進程)的副本(子進程);
父進程繼續處理來自客戶端的請求,子進程開始將內存中的數據寫入硬盤中的臨時文件;
當子進程寫完所有的數據后,用該臨時文件替換舊的RDB文件,至此,一次快照操作完成。
需要注意的是:
在執行fork的時候操作系統(類Unix操作系統)會使用寫時復制(copy-on-write)策略,即fork函數發生的一刻,父進程和子進程共享同一塊內存數據,當父進程需要修改其中的某片數據(如執行寫命令)時,操作系統會將該片數據復制一份以保證子進程不受影響,所以RDB文件存儲的是執行fork操作那一刻的內存數據。所以RDB方式理論上是會存在丟數據的情況的(fork之后修改的的那些沒有寫進RDB文件)。
AOF方式
在使用Redis存儲非臨時數據時,一般都需要打開AOF持久化來降低進程終止導致的數據丟失,AOF可以將Redis執行的每一條寫命令追加到硬盤文件中,這一過程顯然會降低Redis的性能,但是大部分情況下這個影響是可以接受的,另外,使用較快的硬盤能提高AOF的性能。
開啟AOF
默認情況下,Redis沒有開啟AOF(append only file)持久化功能,可以通過在配置文件中作如下配置啟用:
appendonly yes
開啟之后,Redis每執行一條寫命令就會將該命令寫入硬盤中的AOF文件。AOF文件保存路徑和RDB文件路徑是一致的,都是通過dir參數配置,默認文件名是:appendonly.aof,可以通過配置appendonlyfilename參數修改,例如:
appendfilename “appendonly.aof”
以上就是動力節點java培訓機構的小編針對“實用的Javaweb編程教程總結”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習