日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Redis中RDB和AOF

作者:Bunny0212 更新時間: 2024-03-15 編程語言

Redis中RDBAOF

定時間間隔執行數據集的時間快照,把某一時刻數據和妝容以文件的形式寫到磁盤上,也就是快照。

配置文件

如果是普通安裝方式可以跳過,如果是docker安裝,需要到官網下載redis.conf配置文件到本地,地址如下

http://download.redis.io/redis-stable/redis.conf

設置配置Redis文件配置路徑

創建存放redisconf文件夾如果不想存放到這里也可以換一個地方;創建完成后將下載好的配置文件拖入到里面

mkdir - p /home/docker/redis/config

設置redisdata存放目錄,如果不想存放到這里;也可以換一個地方

mkdir -p /home/docker/redis/data

拉取鏡像

docker pull redis

運行redis,這里路徑就是上面我配置的路徑

docker run -p 6379:6379 --name redis \
-v /home/docker/redis/config/redis.conf:/etc/redis/redis.conf \
-v /home/docker/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes

如果需要設置開機啟動

docker update --restart=always redis

進入鏡像的Redis,可以看到配置文件已存在

docker exec -it redis bash
cd /etc/redis/

在這里插入圖片描述

之后只需要在外面修改配置文件,里面的配置文件也會跟著改,這樣就不用切換到鏡像內部去改配置文件了

在這里插入圖片描述

設置配置文件設置

5秒內2次修改就保存
save 5 2

在這里插入圖片描述

修改dump文件保存路徑

修改保存文件到/data/redis/dumpfiles,文件夾一定要先存在

# 可以先使用命令
mkdir -p /data/redis/dumpfiles

**修改配置文件 **

dir /data/redis/dumpfiles

在這里插入圖片描述

# 獲取文件目錄
config get dir 

在這里插入圖片描述

獲取密碼

CONFIG GET requirepass

在這里插入圖片描述

獲取端口號

CONFIG GET port

Redis默認是有數據保存的功能,但是只是在停機的時候,如果這時候突然宕機數據還是會丟失。

RDB

RDB文件(dump.rdb),其中RDB就是Redis就是Redis DataBase縮寫也被叫做Redis數據快照。簡單來說就是把內存中的所有數據都記錄到磁盤中。當Redis實例故障重啟后,從磁盤讀取快照文件,恢復數據。
快照文件稱為RDB文件,默認是保存在當前運行目錄。

  • RDB方式bgsave的基本流程?
    • fork主進程得到一個子進程,共享內存空間
    • 子進程讀取內存數據并寫入新的RDB文件
    • 用新RDB文件替換舊的RDB文件
  • RDB會在什么時候執行?save 60 1000代表什么含義?
    • 默認是服務停止時
    • 代表60秒內至少執行1000次修改則觸發RDB
  • RDB的缺點?
    • 執行時間間隔廠,兩次RDB之間寫入數據有丟失風險
    • fork子進程、壓縮、寫出RDB文件都比較耗時

save

Redis主進程來來執行RDB,會阻塞所有命令,這種方式并不推薦。

# 900秒內有一次修改就執行
save 900 1
# 300 秒內有10次修改就執行
save 300 10
# 60秒內有10000次修改就保存
save 60 10000

RDB的其它設置可以在redis.conf配置中設置

# 是否壓縮,建議不開啟因為會消耗CPU
rdbcompression yes # 默認是開啟的
# RDB文件名稱
dbfilename dump.rdb

在這里插入圖片描述

bgsave

開啟子進程來執行RDB,避免主進程受到影響。子進程共享主進程的內存數據。完成fork后讀取內存數據并寫入 RDB 文件。

fork采用的是copy-on-write技術,會創建一個新的RDB文件會替換舊的RDB文件。

在這里插入圖片描述

AOF

AOF全稱為Append 0nly File(追加文件)。Redis處理的每一個寫命令都會記錄在AOF文件,可以看做是命令日志文件。

也是解決RDB的缺點,開啟方式,修改redis.conf

正常都是使用appendfsyns everysec

# 是否開啟AOF,默認是no
appendonly yes
# AOF文件的名稱
appendfilename "appendonly.aof"
# 表示每執行一次寫命令,立即記錄到AOF文件
appendfsync always
# 寫命令執行先放入AOF緩沖 區,然后表示每隔1秒將緩沖區數據寫到AOF文件,是默認安裝
appendfsync everysec 
# 寫命令執行完先放入AOF緩沖區,由操作系統決定何時將緩沖區內容寫入磁盤
appendfsync no

在這里插入圖片描述

因為是記錄命令,AOF文件會比RDB文件大的多。而且AOF會記錄對同一個key的多次寫操作,但只有最后一次寫操作才有意義。通過執行bgrewriteaof命令,可以讓AOF文件執行重寫功能,用最少的命令達到相同效果。

# AOF文件比上次文件 增長超過多少百分比則觸發重寫
auto-aof-rewrite-percentage 100
# AOF文件體積最小多大以上才觸發重寫
auto-aof-rewrite-min-size 64mb

次寫操作才有意義。通過執行bgrewriteaof命令,可以讓AOF文件執行重寫功能,用最少的命令達到相同效果。

# AOF文件比上次文件 增長超過多少百分比則觸發重寫
auto-aof-rewrite-percentage 100
# AOF文件體積最小多大以上才觸發重寫
auto-aof-rewrite-min-size 64mb

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/weixin_46533577/article/details/135239894

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新