redis有哪幾種持久化方式

Redis 提供了兩種持久化方式:RDB(Redis Database)?和?AOF(Append-Only File)。它們各有優缺點,適用于不同的場景。以下是它們的原理、優缺點以及如何選擇的建議:


1.?RDB(Redis Database)

原理
  • RDB 是 Redis 的快照持久化方式。

  • Redis 會定期將內存中的數據生成一個二進制快照文件(.rdb),并保存到磁盤。

  • 可以通過配置?save?參數設置觸發快照的條件(如?save 900 1?表示 900 秒內至少有 1 個 Key 被修改時觸發快照)。

優點
  • 性能高:生成快照是異步操作,對 Redis 的性能影響較小。

  • 文件緊湊:RDB 文件是二進制格式,文件體積小,適合備份和恢復。

  • 恢復速度快:恢復數據時直接加載 RDB 文件,速度比 AOF 快。

缺點
  • 數據丟失風險:如果 Redis 崩潰,最后一次快照之后的數據會丟失。

  • 不適合實時持久化:快照是定期生成的,無法做到實時持久化。

適用場景
  • 適合對數據丟失不敏感的場景,如緩存、數據分析等。

  • 適合需要快速備份和恢復的場景。


2.?AOF(Append-Only File)

原理
  • AOF 是 Redis 的日志持久化方式。

  • Redis 會將每個寫操作(如?SETDEL)追加到 AOF 文件的末尾。

  • 可以通過配置?appendfsync?參數控制 AOF 文件的同步頻率:

    • always:每次寫操作都同步到磁盤,數據最安全,但性能最低。

    • everysec:每秒同步一次,性能和數據安全性折中(默認配置)。

    • no:由操作系統決定同步時機,性能最高,但數據安全性最低。

優點
  • 數據安全性高:AOF 文件記錄了所有寫操作,數據丟失風險低。

  • 支持實時持久化:通過?appendfsync always?可以實現實時持久化。

  • 可讀性強:AOF 文件是文本格式,可以手動編輯或分析。

缺點
  • 文件體積大:AOF 文件記錄了所有寫操作,文件體積通常比 RDB 大。

  • 恢復速度慢:恢復數據時需要重放 AOF 文件中的寫操作,速度比 RDB 慢。

  • 性能開銷大:頻繁的寫操作和同步會影響 Redis 的性能。

適用場景
  • 適合對數據安全性要求高的場景,如金融、訂單等。

  • 適合需要實時持久化的場景。


3.?RDB 和 AOF 的對比

特性RDB(快照)AOF(日志)
持久化方式定期生成快照記錄每個寫操作
文件格式二進制文本
文件體積
數據安全性較低(可能丟失最后一次快照后的數據)較高(可以配置為實時持久化)
恢復速度
性能開銷
適用場景緩存、數據分析金融、訂單等對數據安全性要求高的場景

4.?如何選擇?

  • 單獨使用 RDB

    • 適合對數據丟失不敏感的場景。

    • 適合需要快速備份和恢復的場景。

  • 單獨使用 AOF

    • 適合對數據安全性要求高的場景。

    • 適合需要實時持久化的場景。

  • 同時使用 RDB 和 AOF

    • 結合兩者的優點,RDB 用于定期備份,AOF 用于實時持久化。

    • 恢復時優先使用 AOF 文件,確保數據完整性。


5.?配置示例

RDB 配置

bash

save 900 1      # 900 秒內至少有 1 個 Key 被修改時觸發快照
save 300 10     # 300 秒內至少有 10 個 Key 被修改時觸發快照
save 60 10000   # 60 秒內至少有 10000 個 Key 被修改時觸發快照
dbfilename dump.rdb  # RDB 文件名
dir /var/lib/redis   # RDB 文件保存路徑
AOF 配置

bash

appendonly yes               # 啟用 AOF
appendfilename "appendonly.aof"  # AOF 文件名
appendfsync everysec         # 每秒同步一次
dir /var/lib/redis           # AOF 文件保存路徑

6.?總結

  • RDB:適合對性能要求高、數據丟失不敏感的場景。

  • AOF:適合對數據安全性要求高、需要實時持久化的場景。

  • 結合使用:可以同時啟用 RDB 和 AOF,兼顧性能和數據安全性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897318.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity引擎使用HybridCLR(華佗)熱更新

大家好,我是阿趙。 ??阿趙我做手機游戲已經有十幾年時間了。記得剛開始從做頁游的公司轉到去做手游的公司,在面試的時候很重要的一個點,就是會不會用Lua。使用Lua的原因很簡單,就是為了熱更新。 ??熱更新游戲內容很重要。如果…

DeepSeek R1-7B 醫療大模型微調實戰全流程分析(全碼版)

DeepSeek R1-7B 醫療大模型微調實戰全流程指南 目錄 環境配置與硬件優化醫療數據工程微調策略詳解訓練監控與評估模型部署與安全持續優化與迭代多模態擴展倫理與合規體系故障排除與調試行業應用案例進階調優技巧版本管理與迭代法律風險規避成本控制方案文檔與知識傳承1. 環境配…

大白話html語義化標簽優勢與應用場景

大白話html語義化標簽優勢與應用場景 大白話解釋 語義化標簽就是那些名字能讓人一看就大概知道它是用來做什么的標簽。以前我們經常用<div>來做各種布局&#xff0c;但是<div>本身沒有什么實際的含義&#xff0c;就像一個沒有名字的盒子。而語義化標簽就像是有名…

軟件工程---構件

在軟件工程中&#xff0c;構件是一個獨立的、可復用的軟件單元&#xff0c;它具有明確的功能、接口和行為&#xff0c;并且可以在不同的環境中加以集成和復用。構件的概念是軟件架構和組件化開發的核心思想之一&#xff0c;其目的是促進軟件系統的模塊化、可維護性和可擴展性。…

MES機聯網4:文檔資料

目錄信息 MES機聯網1&#xff1a;技術方案MES機聯網2&#xff1a;采集網關MES機聯網3&#xff1a;管理后臺MES機聯網4&#xff1a;文檔資料 MQ接入文檔 1、建立連接 mqtt連接地址: 192.168.0.138 mqtt端口: 1883 mqtt用戶名&#xff1a;admin mqtt密碼&#xff1a;123456 …

“此電腦”中刪除WPS云盤方法(百度網盤通用)

&#x1f4e3;此方法適用于卸載WPS云盤后&#xff0c;WPS云盤圖標依然在此電腦中顯示的問題。 原理&#xff1a;通過注冊來進行刪除 步驟&#xff1a; WIN鍵R,打開運行窗口&#xff0c;輸入regedit命令&#xff0c;來打開【注冊表編輯器】&#xff1b; 從左側&#xff0c;依…

【 Vue3 提升:技術解析與實踐】

摘要 Vue.js 3.0 的發布為前端開發帶來了眾多性能提升、新特性和改進。本文將深入探討 Vue3 的提升之處&#xff0c;從性能優化、新特性解析、生態系統發展等多個方面進行解析&#xff0c;并通過實踐案例展示如何在項目中應用這些新特性。 一、認識 Vue3 1. Vue3 的發布背景…

279.完全平方數

279.完全平方數 力扣題目鏈接(opens new window) 給定正整數 n&#xff0c;找到若干個完全平方數&#xff08;比如 1, 4, 9, 16, ...&#xff09;使得它們的和等于 n。你需要讓組成和的完全平方數的個數最少。 給你一個整數 n &#xff0c;返回和為 n 的完全平方數的 最少數…

HTML-網頁介紹

一、網頁 1.什么是網頁&#xff1a; 網站是指在因特網上根據一定的規則&#xff0c;使用 HTML 等制作的用于展示特定內容相關的網頁集合。 網頁是網站中的一“頁”&#xff0c;通常是 HTML 格式的文件&#xff0c;它要通過瀏覽器來閱讀。 網頁是構成網站的基本元素&#xf…

Django模板語法及靜態文件

模板語法及靜態文件 1 多app創建 在主路由當中引入 include include()函數是Django.urls模塊中的一個函數&#xff0c;它的作用是在urls.py文件中引入其他應用的URL模式。 from django.urls import path, include創建多個app python manage.py startapp project_one python ma…

[PWNME 2025] PWN 復現

這種比賽得0也不容易&#xff0c;前邊暖聲還是能作的。 GOT 指針前溢出&#xff0c;可以溢出到GOT表&#xff0c;然后把后門寫上就行 Einstein 這個拿到WP也沒復現成&#xff0c;最后自己改了一下。 int __cdecl handle() {int offset; // [rsp8h] [rbp-38h] BYREFunsigne…

微信小程序將markdown內容轉為pdf并下載

要在微信小程序中將Markdown內容轉換為PDF并下載,您可以使用以下方法: 方法一:使用第三方API服務 選擇第三方API服務: 可以選擇像 Pandoc、Markdown-PDF 或 PDFShift 這樣的服務,將Markdown轉換為PDF。例如,PDFShift 提供了一個API接口,可以將Markdown內容轉換為PDF格式…

MongoDB(一) - MongoDB安裝教程(Windows + Linux)

文章目錄 前言一、Windows安裝單機MongoDB1. 下載并解壓MongoDB安裝包1.1 下載1.2 解壓1.3 相關文件介紹 2. 配置2.1 配置環境變量2.1.1 打開系統屬性設置2.1.2 編輯 PATH 環境變量2.1.3 驗證環境變量是否配置成功 2.2 創建相關目錄和文件2.3 修改MongoDB配置文件 mongodb.conf…

mybatis日期格式與字符串不匹配bug

異常特征&#xff1a;java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.String ### Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.Str…

【算法學習之路】5.貪心算法

貪心算法 前言一.什么是貪心算法二.例題1.合并果子2.跳跳&#xff01;3. 老鼠和奶酪 前言 我會將一些常用的算法以及對應的題單給寫完&#xff0c;形成一套完整的算法體系&#xff0c;以及大量的各個難度的題目&#xff0c;目前算法也寫了幾篇&#xff0c;題單正在更新&#xf…

快速使用MASR V3版不能語音識別框架

前言 本文章主要介紹如何快速使用MASR語音識別框架訓練和推理&#xff0c;本文將致力于最簡單的方式去介紹使用&#xff0c;如果使用更進階功能&#xff0c;還需要從源碼去看文檔。僅需三行代碼即可實現訓練和推理。 源碼地址&#xff1a;https://github.com/yeyupiaoling/MA…

C語言_數據結構總結5:順序棧

純C語言代碼&#xff0c;不涉及C 想了解鏈式棧的實現&#xff0c;歡迎查看這篇文章&#xff1a;C語言_數據結構總結6&#xff1a;鏈式棧-CSDN博客 這里分享插入一下個人覺得很有用的習慣&#xff1a; 1. 就是遇到代碼哪里不理解的&#xff0c;你就問豆包&#xff0c;C知道&a…

2021 年 6 月青少年軟編等考 C 語言六級真題解析

目錄 T1. 波蘭表達式T2. 多項式相加思路分析T3. 撲克牌排序思路分析T4. 表達式求值思路分析T1. 波蘭表達式 題目鏈接:SOJ D1087 此題為 2023 年 12 月三級第三題原題,見 2023 年 12 月青少年軟編等考 C 語言三級真題解析中的 T3。 T2. 多項式相加 題目鏈接:SOJ D1088 我…

AI數字人| Fay開源項目、UE5數字人、本地大模型

數字人實踐教程 本教程主要是講如何在本地UE部署Fay數字人的開源框架。 最終效果可以與人進行自然語言的對話&#xff0c;花了大概10個h的時間到&#xff0c;踩了很多坑&#xff0c;同樣想實現的朋友可以作為參考 參考文檔&#xff1a;Fay 數字人開源框架 - 飛書云文檔 官方的教…

網絡版漢譯英服務(muduo)

文章目錄 網絡版漢譯英服務&#xff08;muduo&#xff09;muduo庫muduo 庫是什么muduo 庫常見接口介紹muduo::net::EventLoopmuduo::net::TcpConnectionmuduo::net::TcpServermuduo::net::TcpClientmuduo::net::Buffer 漢譯英服務服務端客戶端 網絡版漢譯英服務&#xff08;mud…