Redis持久化儲存方式解析

王林
發布: 2024-06-16 09:42:47
原創
370 人瀏覽過

Redis持久化儲存方式解析

#一、RBD(快照)

原理

在某個時間點將記憶體中的資料寫入一個磁碟的暫存文件,持久化結束後,用這個暫存文件取代上次持久化的文件。

設定檔

save 900 1 # 在900秒内如果键值修改过1次就快照 save 300 10 # 在300秒内如果键值修改过10次就快照 save 60 10000 # 在60秒内键值修改过10000次就快照 stop-writes-on-bgsave-error yes # 后台备份出错时,是否禁止新的写入操作? 如果不禁止容易造成数据不一致 rdbcompression yes # 导出的rdb文件是否压缩 rdbchecksum yes # 恢复时导入rdb文件是否检验完整性、是否检验版本是否一致 dbfilename dump.rdb # 导出来得rdb文件名 dir /var/lib/redis # rdb的存放路径
登入後複製
二、AOF

#原理

透過將傳送到伺服器的寫入操作指令記錄下來,形成AOF文件,此文件只許追加不能修改,Redis啟動時會讀取AOF檔後重構資料(重新執行一遍)。檔案預設名稱是appendonly.aof

設定檔

appendonly no # 是否开启aof功能 appendfilename "appendonly.aof" # 文件名 appendfsync always # 只要一修改就同步至缓冲区,并同步至磁盘 appendfsync everysec # 每秒将数据同步至缓冲区,并同步至磁盘 appendfsync no # redis不设定同步策略,由内核设定的参数决定是否同步 no-appendfsync-on-rewrite no # appendfsync设定为always或everysec的话,还要不要同步磁盘 auto-aof-rewrite-percentage 100 # 每隔多久重构aof文件,单位秒 auto-aof-rewrite-min-size 64mb # aof文件最小为多少时重构一次aof文件。搭配上一条使用 aof-load-truncated yes # 崩溃修复后自动进行全备
登入後複製

aof重寫、重構

將大量重複的命令合併成一條命令,而不必頻繁的去重新執行每條命令.
Redis持久化儲存方式解析

三、AOF對比RDB

AOF更安全,可以將資料即時同步到檔案中,但是消耗磁碟I/O,效率低

Snapshot更有效率,它是伺服器在正常運作情況下資料同步最佳手段,檔案尺寸小,效率高,安全性低

附註:RDB與AOF同時開啟 預設使用AOF來復原資料

四、常用架構

# 架構良好的環境中:Master使用AOF,Slave使用snapshot。原因是主要確保資料完整,從要速度快。

網路環境較差:建議使用master與slave同時使用AOF更安全

# 網路良好、需要收密集型寫入操作:建議Master採用snapshot,Slave採用AOF

以上是Redis持久化儲存方式解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!