中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Redis5.0+——持久化——RDB&AOF-創(chuàng)新互聯(lián)

Redis持久化-RDB 1.實(shí)現(xiàn)目標(biāo):

在redis持久化時(shí),持久化dump.rdb文件放入到redis解壓目錄下的data目錄下的6379目錄下

創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站備案、服務(wù)器租用、域名注冊(cè)、軟件開(kāi)發(fā)、微信小程序開(kāi)發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營(yíng)推廣經(jīng)驗(yàn)的科技公司,有著多年的網(wǎng)站建站經(jīng)驗(yàn),致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開(kāi)一個(gè)面向全國(guó)乃至全球的業(yè)務(wù)窗口:建站溝通電話:189820811082.前期準(zhǔn)備

1.在redis-5.0.3解壓目錄下新建data數(shù)據(jù)目錄 2.編輯前面配置的/etc/redis.conf配置文件

修改持久化文件位置
(1) 進(jìn)入安裝redis的目錄,新建data文件夾以及端口對(duì)應(yīng)文件夾
[root@VM-16-10-centos redis-5.0.3]# cd /usr/local/redis-5.0.3
[root@VM-16-10-centos redis-5.0.3]# mkdir data
[root@VM-16-10-centos redis-5.0.3]# cd data
[root@VM-16-10-centos redis-5.0.3]# mkdir 6379
(2) 修改拷貝的redis啟動(dòng)配置文件
vim /etc/redis.conf

修改以下配置
logfile "6380.log" #日志文件,默認(rèn)會(huì)存放到配置的dir目錄下
# 搜索dir修改dir存放路徑
dir /usr/local/redis-5.0.3/data/6379
3.RDB數(shù)據(jù)持久化

RDB(Redis DataBase)快照(snapshot)
在默認(rèn)情況下, Redis 將內(nèi)存數(shù)據(jù)庫(kù)快照保存在名字為 dump.rdb 的二進(jìn)制文件中。

3.1 方式一:配置文件RDB持久化策略自動(dòng)保存

以下設(shè)置會(huì)讓 Redis 在滿足“ 60 秒內(nèi)有至少有 1000 個(gè)鍵被改動(dòng)”這一條件時(shí), 自動(dòng)保存一次數(shù)據(jù)集:
save 60 1000 //關(guān)閉RDB只需要將所有的save保存策略注釋掉即可

3.2 方式二:redis-cli客戶端save和bgsave命令
redis-cli -p 6379 #進(jìn)入6379端口的redis客戶端
127.0.0.1:6379>save # 同步保存,會(huì)占用redis的線程
127.0.0.1:6379>bgsave #異步保存,會(huì)開(kāi)啟一個(gè)子線程

文件生成位置:在頂部配置的dir位置

4.AOF數(shù)據(jù)持久化

以日志的形式來(lái)記錄每個(gè)寫操作
每隔一段時(shí)間fsync到磁盤, Redis 執(zhí)行一個(gè)改變數(shù)據(jù)集的命令時(shí)(比如 SET), 這個(gè)命令就會(huì)被追加到 AOF 文件的末尾。
如何開(kāi)啟?修改redis.conf文件

appendonly yes

redis的同步頻率設(shè)置

appendfsync always # 每次有新命令追加到 AOF 文件時(shí)就執(zhí)行一次 fsync ,非常慢,也非常安全。
appendfsync everysec # 每秒 fsync 一次,足夠快,并且在故障時(shí)只會(huì)丟失 1 秒鐘的數(shù)據(jù)。
appendfsync no # 從不 fsync ,將數(shù)據(jù)交給操作系統(tǒng)來(lái)處理。更快,也更不安全的選擇。

文件生成位置:在頂部配置的dir位置和RDB保持一致(默認(rèn):dir ./ 生成位置在/usr/local下的bin目錄下)

4.1 AOF重寫壓縮策略
# 進(jìn)行命令
set a a1
set b b1
# 重寫過(guò)后
set a a1 b b1

AOF文件里可能有太多沒(méi)用指令,所以AOF會(huì)定期根據(jù)內(nèi)存的最新數(shù)據(jù)生成aof文件

1.redis.conf配置自動(dòng)重寫策略
auto-aof-rewrite-min-size 64mb   //aof文件至少要達(dá)到64M才會(huì)自動(dòng)重寫,文件太小恢復(fù)速度本來(lái)就很快,重寫的意義不大
auto-aof-rewrite-percentage 100  //aof文件自上一次重寫后文件大小增長(zhǎng)了100%則再次觸發(fā)重寫(即128MB會(huì)再次觸發(fā))
2.手動(dòng)重寫

AOF還可以手動(dòng)重寫,進(jìn)入redis-cli客戶端執(zhí)行命令bgrewriteaof重寫AOF
AOF重寫redis會(huì)fork出一個(gè)子進(jìn)程去做(與bgsave命令類似),不會(huì)對(duì)redis正常命令處理有太多影響
redis4.0版本后的重寫,是指把rdb快照以二進(jìn)制的形式附在aof頭部,作為已有的歷史數(shù)據(jù),替換掉原來(lái)的流水賬操作

總結(jié)AOF持久化流程

(1)客戶端的請(qǐng)求命令會(huì)被append追加到AOF緩存區(qū)
(2)AOF緩存區(qū)根據(jù)AOF持久化策略【always ,everysec ,no】將操作sync同步到磁盤的AOF文件中
(3)AOF文件大小超過(guò)重寫策略或手動(dòng)重寫時(shí),會(huì)對(duì)AOF文件rewrite重寫,壓縮AOF文件容量

4.2 AOF和RDB同時(shí)開(kāi)啟,redis聽(tīng)誰(shuí)的?

系統(tǒng)默認(rèn)取AOF數(shù)據(jù)(因?yàn)閿?shù)據(jù)不會(huì)存在丟失)

4.3 異?;謴?fù)

若遇到AOF文件損壞,通過(guò)

/usr/local/bin/redis-check-aof  --fix appendonly.aof # 進(jìn)行恢復(fù)

備份被寫壞的AOF文件
恢復(fù):重啟redis,然后重寫加載

4.4 RDB和AOF優(yōu)缺點(diǎn)
命令RDBAOF
啟動(dòng)優(yōu)先級(jí)
體積
恢復(fù)速度
數(shù)據(jù)安全性容易丟數(shù)據(jù)根據(jù)策略決定
5.Redis 4.0 混合持久化

在這里插入圖片描述

開(kāi)啟了混合持久化,AOF在重寫時(shí),不再是單純將內(nèi)存數(shù)據(jù)轉(zhuǎn)換為RESP命令寫入AOF文件,而是將重寫這一刻之前的內(nèi)存做RDB快照處理,并且將RDB快照內(nèi)容和增量的AOF修改內(nèi)存數(shù)據(jù)的命令存在一起,都寫入新的AOF文件,新的文件一開(kāi)始不叫appendonly.aof,等到重寫完新的AOF文件才會(huì)進(jìn)行改名,覆蓋原有的AOF文件,完成新舊兩個(gè)AOF文件的替換。

redis.conf 中配置開(kāi)啟混合持久化(必須先開(kāi)啟aof)

# 修改redis.conf中的以下配置
aof-use-rdb-preamble yes  

在 Redis 重啟的時(shí)候,可以先加載 RDB 的內(nèi)容,然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放,因此重啟效率大幅得到提升。

6.通過(guò)持久化文件恢復(fù)數(shù)據(jù)

在我們持久化文件之后還需要對(duì)持久化文件進(jìn)行備份重命名,此處在持久化目錄做出以下配置

[root@VM-16-10-centos 6379]# mv dump.rdb dump.rdb.bak 
  [root@VM-16-10-centos 6379]# mv  appendonly.aof  appendonly.aof.bak

恢復(fù)數(shù)據(jù)
注意:在redis被關(guān)閉時(shí),redis會(huì)自己給我們做一次持久化,重啟之后redis內(nèi)的數(shù)據(jù)會(huì)被清空。當(dāng)我們關(guān)閉redis服務(wù)再重寫啟動(dòng)時(shí)如何獲取之前備份的數(shù)據(jù)。
恢復(fù)流程:修改備份數(shù)據(jù)名稱為redis持久化文件名稱–>再啟動(dòng)redis服務(wù)和客戶端

1.此處我們配置的備份數(shù)據(jù)目錄為:/usr/local/redis-5.0.3/data/6379,因此進(jìn)入該目錄
將之前備份的數(shù)據(jù)文件:
  appendonly.aof.bak 改為 appendonly.aof
  dump.rdb.bak 改為 dump.rdb
  [root@VM-16-10-centos 6379]# cp dump.rdb.bak  dump.rdb
  [root@VM-16-10-centos 6379]# cp  appendonly.aof.bak  appendonly.aof
  ##登錄客戶端
  [root@VM-16-10-centos ~]# redis-server /etc/redis.conf 
[root@VM-16-10-centos ~]# redis-cli -p 6379
客戶端使用keys *查看數(shù)據(jù)已經(jīng)恢復(fù)
7.redis定時(shí)任務(wù)備份數(shù)據(jù)

1.編輯定時(shí)任務(wù)

[root@VM-16-10-centos ~]# crontab -e
25 2 * * * sh /root/backup.sh # 每天2:25開(kāi)始執(zhí)行shell腳本

2.新建定時(shí)任務(wù)的腳本backup.sh,腳本代碼如下

#! /bin/bash
PATH=/usr/local/bin:$PATH
redis-cli -h 127.0.0.1 -p 6379 -a 123456 bgsave
date=$(date +"%Y%m%d")
cp /root/dump.rdb /root/backup/$date.rdb
echo " 備份完成!"

3.查看任務(wù)執(zhí)行日志

tail -f /var/log/cron

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站欄目:Redis5.0+——持久化——RDB&AOF-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.rwnh.cn/article14/dghjde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站收錄微信小程序、網(wǎng)站維護(hù)建站公司、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
诸暨市| 泗水县| 醴陵市| 图们市| 清原| 汉沽区| 祁连县| 惠州市| 射洪县| 金门县| 九寨沟县| 英吉沙县| 滨州市| 靖边县| 阳信县| 贞丰县| 运城市| 娄底市| 安国市| 平武县| 余干县| 莱西市| 固镇县| 民权县| 甘洛县| 信宜市| 左云县| 基隆市| 错那县| 临汾市| 邵东县| 平邑县| 上林县| 白山市| 清河县| 略阳县| 龙胜| 时尚| 林西县| 永定县| 台东县|