日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis内存淘汰和持久化_redis 持久化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、RDB持久化

(一)、RDB介紹

可以在指定的時(shí)間間隔內(nèi)生成數(shù)據(jù)集的 時(shí)間點(diǎn)快照(point-in-time snapshot),新快照會(huì)覆蓋老快照

(二)、優(yōu)點(diǎn)

壓縮格式,恢復(fù)速度快,適合于用做備份,主從復(fù)制也是基于RDB持久化功能實(shí)現(xiàn)的

(三)、缺點(diǎn)

不是實(shí)時(shí)的,會(huì)有數(shù)據(jù)丟失,操作比較重量

(四)、原理

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

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

第二步:重新啟動(dòng)redis

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

注意事項(xiàng)

1、沒配置save參數(shù)時(shí)

1.shutdown/pkill/kill都不會(huì)持久化保存

2.可以手動(dòng)執(zhí)行bgsave

3、配置save參數(shù)時(shí)

1.shutdown/pkill/kill均會(huì)自動(dòng)觸發(fā)bgsave持久化保存數(shù)據(jù)

2.pkill -9 不會(huì)觸發(fā)持久化

3、恢復(fù)時(shí)

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

2.RDB文件只有一個(gè)數(shù)據(jù)文件,遷移和備份只要這一個(gè)RDB文件即可

二、AOF持久化

(一)、AOF介紹

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

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

(二)、優(yōu)點(diǎn)

可以最大程度保證數(shù)據(jù)不丟

(三)、缺點(diǎn)

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

(四)、原理

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

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

第二步:重啟redis

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

(六)、AOF重寫機(jī)制

1、重寫機(jī)制原理

(1)redis主進(jìn)程通過fork創(chuàng)建子進(jìn)程

(2)子進(jìn)程根據(jù)當(dāng)前redis內(nèi)存中的數(shù)據(jù)生成數(shù)據(jù)庫重建命令序列到臨時(shí)文件中

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

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

(5)父進(jìn)程將臨時(shí)文件替換掉舊的AOF文件

2、重寫機(jī)制注意事項(xiàng)

和RDB一樣,如果當(dāng)前的數(shù)據(jù)量巨大,那么創(chuàng)建子進(jìn)程的過程會(huì)很耗時(shí)。

在大數(shù)據(jù)的處理工作中,文件的刪除也是一項(xiàng)比較麻煩的工作。

像我們普通的筆記本電腦,刪除一個(gè)幾GB的文件都是一項(xiàng)很耗時(shí)的工作,

更何況大數(shù)據(jù)的量級遠(yuǎn)遠(yuǎn)大過我們?nèi)粘J褂玫臄?shù)據(jù)。

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

當(dāng)然這并不是aof或者redis的缺點(diǎn),只是可能會(huì)出現(xiàn)的一個(gè)客觀情況

AOF注意事項(xiàng)

1.aof修復(fù)命令不要?,因?yàn)樗男迯?fù)?案?常粗暴,??切,從出錯(cuò)的地?到最后全部刪除

2.任何操作之前,先備份數(shù)據(jù)

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

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

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

四、save bgsave 區(qū)別?

共同點(diǎn):都能實(shí)現(xiàn)redis持久化功能。

不同點(diǎn):

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

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

五、AOF和RDB如何選擇

1.開啟混合模式

2.開啟aof

3.不開啟rdb

4.rdb采?定時(shí)任務(wù)的?式定時(shí)備份

5.可以從庫開啟RDB進(jìn)?備份

總結(jié)

以上是生活随笔為你收集整理的redis内存淘汰和持久化_redis 持久化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。