欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

Redis持久化-RDB 1.實現(xiàn)目標:

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

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

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

修改持久化文件位置
(1) 進入安裝redis的目錄,新建data文件夾以及端口對應(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啟動配置文件
vim /etc/redis.conf

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

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

3.1 方式一:配置文件RDB持久化策略自動保存

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

3.2 方式二:redis-cli客戶端save和bgsave命令
redis-cli -p 6379 #進入6379端口的redis客戶端
127.0.0.1:6379>save # 同步保存,會占用redis的線程
127.0.0.1:6379>bgsave #異步保存,會開啟一個子線程

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

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

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

appendonly yes

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

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

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

4.1 AOF重寫壓縮策略
# 進行命令
set a a1
set b b1
# 重寫過后
set a a1 b b1

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

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

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

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

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

4.2 AOF和RDB同時開啟,redis聽誰的?

系統(tǒng)默認取AOF數(shù)據(jù)(因為數(shù)據(jù)不會存在丟失)

4.3 異常恢復

若遇到AOF文件損壞,通過

/usr/local/bin/redis-check-aof  --fix appendonly.aof # 進行恢復

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

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

在這里插入圖片描述

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

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

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

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

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

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

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

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

1.此處我們配置的備份數(shù)據(jù)目錄為:/usr/local/redis-5.0.3/data/6379,因此進入該目錄
將之前備份的數(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)恢復
7.redis定時任務(wù)備份數(shù)據(jù)

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

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

2.新建定時任務(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海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

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

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

廣告

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

成都定制網(wǎng)站建設(shè)