redis內存淘汰和持久化_redis 持久化

一、RDB持久化

(一)、RDB介紹

可以在指定的時間間隔內生成數據集的 時間點快照(point-in-time snapshot),新快照會覆蓋老快照

(二)、優點

壓縮格式,恢復速度快,適合于用做備份,主從復制也是基于RDB持久化功能實現的

(三)、缺點

不是實時的,會有數據丟失,操作比較重量

(四)、原理

5e9b2caf7b7da7a7e78156d9c54cd221.png

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

#添加
dir /data/6379                  #持久化文件存儲位置
dbfilename dump.rdb      #RDB持久化數據文件
save 900 1                        #900秒內如果有一次變更則進行一次持久化
save 300 10                      #300秒內如果有10次變更則進行一次持久化
save 60 10000                  #60秒內如果有10000次變更則進行一次持久化

第二步:重新啟動redis

redis-cli -a 123456 shutdown 
redis-server /data/6379/redis.conf

注意事項

1、沒配置save參數時

1.shutdown/pkill/kill都不會持久化保存

2.可以手動執行bgsave

3、配置save參數時

1.shutdown/pkill/kill均會自動觸發bgsave持久化保存數據

2.pkill -9 不會觸發持久化

3、恢復時

1.持久化數據文件名要和配置文件里定義的一樣才能被識別

2.RDB文件只有一個數據文件,遷移和備份只要這一個RDB文件即可

二、AOF持久化

(一)、AOF介紹

AOF(append-only log file):記錄服務器執行的所有寫操作命令,并在服務器啟動時,通過重新執行這些命令來還原數據集

AOF 文件中的命令全部以 Redis 協議的格式來保存,新命令會被追加到文件的末尾

(二)、優點

可以最大程度保證數據不丟

(三)、缺點

日志記錄量級比較大,持久化時間較長

(四)、原理

b21f3b32485b415781177975725ae61b.png

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

#添加
appendonly yes            #開啟AOF持久化
appendfilename "redis.aof"      #持久化存儲文件
appendfsync always     #每次操作成功都執行一次持久化
#或者  建議設置
appendfsync everysec  #每秒鐘提交一次持久化
#或者
appendfsync no            #不進行持久化

第二步:重啟redis

redis-cli -a 123456 shutdown 
redis-server /data/6379/redis.conf

(六)、AOF重寫機制

1、重寫機制原理

(1)redis主進程通過fork創建子進程

(2)子進程根據當前redis內存中的數據生成數據庫重建命令序列到臨時文件中

(3)父進程繼承client的新請求,把請求中的寫操作繼續追加至原來的AOF文件(而不是直接寫入臨 時文件,避免寫操作失敗帶來的問題);額外地,這些新的寫請求還會被放置于一個緩沖隊列中

(4)子進程重寫完成,會通知父進程,父進程把緩沖中的命令寫到臨時文件中

(5)父進程將臨時文件替換掉舊的AOF文件

2、重寫機制注意事項

和RDB一樣,如果當前的數據量巨大,那么創建子進程的過程會很耗時。

在大數據的處理工作中,文件的刪除也是一項比較麻煩的工作。

像我們普通的筆記本電腦,刪除一個幾GB的文件都是一項很耗時的工作,

更何況大數據的量級遠遠大過我們日常使用的數據。

所以在替換aof文件時,如果舊的aof很大,刪除它也是一個很耗時的過程。

當然這并不是aof或者redis的缺點,只是可能會出現的一個客觀情況

59098fc66a32cde461483782d577ce1c.png

AOF注意事項

1.aof修復命令不要?,因為他的修復?案?常粗暴,??切,從出錯的地?到最后全部刪除

2.任何操作之前,先備份數據

三、redis 持久化方式有哪些?有什么區別?

rdb:基于快照的持久化,速度更快,一般用作備份,主從復制也是依賴于rdb持久化功能

aof:以追加的方式記錄redis操作日志的文件。可以最大程度的保證redis數據安全,類似于mysql的binlog

四、save bgsave 區別?

共同點:都能實現redis持久化功能。

不同點:

SAVE: 前臺,阻塞redis正常寫入,直到持久化完成。

BGSAVE:后臺,開啟子線程,異步的持久化功能,不會阻塞redis正常寫入。

五、AOF和RDB如何選擇

1.開啟混合模式

2.開啟aof

3.不開啟rdb

4.rdb采?定時任務的?式定時備份

5.可以從庫開啟RDB進?備份

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534755.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534755.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534755.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android實現后臺靜默安裝,Android 靜默安裝實現方法

Android靜默安裝的方法,靜默安裝就是繞過安裝程序時的提示窗口,直接在后臺安裝。注意:靜默安裝的前提是設備有ROOT權限。代碼如下:/*** 靜默安裝* param file* return*/public boolean slientInstall(File file) {boolean result …

pythonwrite連續寫入_python文件寫入write()的操作

本文實例為大家分享了python文件寫入write()的操作的具體代碼,供大家參考,具體內容如下filename pragramming.txtwith open(filename,w) as fileobject: #使用‘w來提醒python用寫入的方式打開fileobject.write(i love your name!\ni love your cloth!\…

最新變態傳奇android,新開變態傳奇單職業

新開變態傳奇單職業這款傳奇手游中擁有這極為豐富的游戲玩法,玩家既可以進入各種副本中,挑戰那些強大的副本boss,也可以和自己的兄弟好友們一起組隊,前往各種跨服戰場,和全服的高手玩家們一起進行最激烈的戰斗。游戲中…

spark sql讀取hive底層_[大數據]spark sql讀寫Hive數據不一致

在大數據公司中,任何一家公司都不會只使用一個框架吧?!skr,skr~~那我們今天就來聊一段 Hive 與 Spark的愛恨情仇就像在一些場景中,需要將外部的數據導入到Hive表中,然后再對這些數據進行額外的處理&#xf…

android手機微信收藏功能實現,Android模仿微信收藏文件的標簽處理功能

最近需要用到微信的標簽功能(如下圖所示)。該功能可以添加已有標簽,也可以自定義標簽。也可以刪除已編輯菜單。研究了一番。發現還是挺有意思的,模擬實現相關功能。該功能使用類似FlowLayout的功能。Flowlayout為一個開源軟件(https://github.com/ApmeM/…

strocli64 源碼_storcli 簡易使用介紹

MegaCli 是LSI公司官方提供的SCSI卡管理工具,由于LSI被收購變成了現在的Broadcom,所以現在想下載MegaCli,需要去Broadcom官網查找Legacy產品支持,搜索MegaRAID即可。關于MegaCli 的使用可以看我的另一篇博文,這里就不再…

android 電話號碼標記,強化電話標記功能 360手機衛士3.0安卓版體驗

作為“房產商”,上海仁恒置地集團營銷總監姚偉示通常每天也要接到20個左右房產或其他推銷電話。“現在已經形成了一個機械的對應方式,對于此類推銷電話,很多人包括我自己已經麻木了。”針對這種情況,360手機衛士發布了3.0.0正式版…

lua判斷字符不為空或空格_Lua判斷字符串前綴是否為指定字符的3種方法

在寫 lua debugger 的時候,我需要判斷一個字符串的前綴是不是 "" 。有三個方案:1.比較直觀的是 string.sub(str,1,1) ""2.感覺效率比較高的是 string.byte(str) 643.或者是 string.find(str,"") 1我推薦第三種。(注&am…

android 左滑按鈕,android開發類似微信列表向左滑動按鈕操作

話不多說,直接上代碼,有詳細的注釋的。layout布局中:主要是跟大家說一下listview怎么寫:android:id"id/pull_refresh_viewId"android:layout_width"match_parent"android:layout_height"match_parent&qu…

眼圖 非差分線_利用眼圖解決USB在布線中的信號完整性問題

EDA365歡迎您登錄!您需要 登錄 才可以下載或查看,沒有帳號?注冊x本帖最后由 lifree 于 2020-2-5 14:37 編輯2 ]3 p D% B4 \ {/ n# V& |( A& p O通用串行總線USB (Universal Serial Bus)協議從1.0版本發展到現在,由于數據…

向量表示 運動拋物線_流動的美麗函數——拋物線淺談

事先說明:筆者初三,如在敘述中有不嚴謹的地方,還請諸位指出,自當感激不盡。(本文默認受眾對象為初高中生,因此拋物線一律采取了yax的形式,高中的同學們可以應用旋轉矩陣把它變到y2px的形式QAQ筆…

android 獲取已安裝 錯誤代碼,android獲取手機已經安裝的app信息

Android獲取手機已安裝APP(系統/非系統)效果圖主體代碼private ListView mlistview;private ListpackageInfoList;private ListapplicationInfoList;private MyAdapter myAdapter;private PackageManager pm;Overrideprotected void onCreate(Bundle savedInstanceState) {supe…

android與ios ui切圖關系,APP-IOS與Android界面設計與切圖

做一全套的APP設計,流程是:1、界面設計:設計IOS界面;設計Android界面。2、切圖:切IOS的2倍圖和3倍圖;切Android的hdpi,xhdpi,xxhdpi這三個尺寸的圖。3、標注:以px為單位標注IOS界面的尺寸&#…

js禁止鼠標滑輪_js實現鼠標滑動到某個div禁止滾動

本文實例為大家分享了js實現鼠標滑動到某個div禁止滾動的具體代碼,供大家參考,具體內容如下項目中碰到一個場景就是當鼠標滑倒某個div的時候,滑動鼠標頁面不再滾動。這里主要是當鼠標滑動到該div時,監聽滾輪事件并通過preventDefa…

android app應用后臺休眠,安卓手機鎖屏后程序自動關閉,怎么設置手機app允許鎖屏后臺運行...

原標題:安卓手機鎖屏后程序自動關閉,怎么設置手機app允許鎖屏后臺運行安卓手機鎖屏后,很多程序就會自動關閉,實際上,這是安卓手機的一種保護機制。為了使系統能夠流暢穩定的運行以及更加省電,它都會在手機鎖…

ps怎么清屏_黑洞PS大賽刷屏!最后一張扎心了……

事件視界望遠鏡(EHT)項目組和中國科學院共同在上海天文臺發布由EHT“拍下”的人類歷史上首張黑洞照片這意味著人類成功獲得了超大黑洞的第一個直接視覺證據黑洞首次露出真容!據說宇宙誕生了138億年年齡最大的黑洞也已經超過了100億歲經過了這么久黑洞家族的成員才終…

linux和windows和鴻蒙,linux很好,但為何大家都用Win,鴻蒙系統站錯陣營了嗎?

原標題:linux很好,但為何大家都用Win,鴻蒙系統站錯陣營了嗎?由目前已知信息可知,華為“鴻蒙系統”很可能基于linux開源程序搭建,這個特點與蘋果微軟由很大不同。蘋果手機目前主要使用Objective-C程序語言開…

centos7磁盤邏輯分區命令_CentOS7 磁盤分區(主分區、擴展分區和邏輯分區)的創建、掛載與刪除...

創建磁盤分區查看磁盤分區情況:fdisk -l[rootmodel ~]# fdisk -l //查看系統中所有磁盤的分區列表Disk/dev/sda: 107.4 GB, 107374182400 bytes, 209715200sectorsUnits sectors of 1 * 512 512bytesSector size (logical/physical): 512 bytes / 512bytesI/O size…

php使用webservivce_JWS服務開發使用指南

均支持該版本&#xff0c;主要你的web.xml文件中必須制定2.5版本xmlversion"1.0"encoding"UTF-8"?><web-appxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns"http://java.sun.com/xml/ns/javaee"xmlns:web"ht…

android sdk是灰的,Android Studio 2.3 sdk管理器標簽灰顯

Android Studio 2.3 - >配置 - > SDK管理器。 這些選項卡呈灰色顯示&#xff1a; SDK工具&#xff0c;SDK更新站點。此外&#xff0c;“Show Package Details”復選框呈灰色。 系統正常更新。沒有錯誤消息。Android Studio 2.3 sdk管理器標簽灰顯我認為這發生在Studio 2.…