在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)制文件中。
以下設(shè)置會(huì)讓 Redis 在滿足“ 60 秒內(nèi)有至少有 1000 個(gè)鍵被改動(dòng)”這一條件時(shí), 自動(dòng)保存一次數(shù)據(jù)集:
save 60 1000 //關(guān)閉RDB只需要將所有的save保存策略注釋掉即可
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)的流水賬操作
(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文件容量
系統(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,然后重寫加載
命令 | RDB | AOF |
---|---|---|
啟動(dòng)優(yōu)先級(jí) | 低 | 高 |
體積 | 小 | 大 |
恢復(fù)速度 | 快 | 慢 |
數(shù)據(jù)安全性 | 容易丟數(shù)據(jù) | 根據(jù)策略決定 |
開(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)
猜你還喜歡下面的內(nèi)容