redis 的 RDB 和 AOF

本文介绍了Redis的两种持久化机制——RDB和AOF。RDB是内存快照,全量备份,而AOF记录操作日志,支持重写以优化存储。RDB配置包括save触发条件、压缩和文件名等,AOF配置涉及同步策略、重写触发和文件名。在实际应用中,通常关闭RDB自动触发,手动备份,并使用AOF的everysec策略确保数据安全性。
摘要由CSDN通过智能技术生成

目录

 

首先说一下RDB  和 AOF  的不同

RDB

RDB触发方式

RDB配置 

AOF

rewrite

AOF rewrite 的两种触发机制

配置


首先说一下RDB  和 AOF  的不同

1 RDB 是对当时redis 内存的一个快照,每次备份的都是当时内存的全量数据 ,操作较重,比较耗时

2 AOF 是对用户所做操作的一个日志记录,可以根据策略调整日志操作落盘策略 ,如果操作日志过大的话,可以使用rewrite方式进行操作的简化,即比如  我们 set string1  weijinhao  set string1 we   set string1 weijinghaoaaa   那么rewrite 后记录的就是rewite当时的最终结果 weijinhaoaaa

之后我们看看RDB  和AOF是如何配置的

RDB

RDB触发方式

RDB 的一共有三种触发方式 :

  1. save (同步命令)
  2. bgsave(异步快照命令)
  3. 自动触发(通过配置 save的触发条件)

RDB配置 

我们看看在配置文件中如何配置

################################ SNAPSHOTTING  ################################
####该配置为自动触发条件   save   多少秒钟  多少个改变进行 rdb 的操作,我们基本上进行关闭
#save 900 1
#save 300 10
#save 60 10000

#备份出错后停止写入
stop-writes-on-bgsave-error yes

#是否启用压缩模式
rdbcompression yes

#格式检查rdb
rdbchecksum yes

# rdb 的文件名称
dbfilename dump-6379.rdb

#存放的路径
dir /develop/redis/data/data

说完了RDB 我们在来看看 AOF

AOF

AOF 基本上有两个知识点,第一个 就是aof的rewrite   第二个   就是aof 的配置 

rewrite

我们先来说说aof 的rewite 操作 ,如果操作日志过大的话,可以使用rewrite方式进行操作的简化,即比如  我们 set string1  weijinhao  set string1 we   set string1 weijinghaoaaa   那么rewrite 后记录的就是rewite当时的最终结果 weijinhaoaaa,重写的原因,是整理aof,相当于 一个rdb 文件了。

AOF rewrite 的两种触发机制

BGREWRITEAOF (命令)

自动触发(配置文件配置)

配置

说完了这些我们在来看看AOF 的配置

############################## APPEND ONLY MODE ###############################

#首先是是否开启aof  aof比rdb 的优先级要高

appendonly yes

# 设置aof 文件的名称

appendfilename "appendonly-6379.aof"

#aof 的同步策略,no 是使用操作系统同的刷新机制  always是一条操作一次落盘  everysec是1秒落一次盘
# no: don't fsync, just let the OS flush the data when it wants. Faster.
# always: fsync after every write to the append only log. Slow, Safest.
# everysec: fsync only one time every second. Compromise.

appendfsync everysec


#则表示 在rewrite的时候不进行 正常aof的追加操作,注意这会丢失数据

no-appendfsync-on-rewrite no

#触发重写的时机,current_size > auto-aof-rewrite-min-size 或current_size -aof_base_size #/aof_base_size > auto-aof-rewrite-percentage 时进行重写

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 100mb

# 如果aof文件导入失败的话,是否能够启动程序
aof-load-truncated yes

但是说了这些,那么我们项目中的redis 到底该如何使用呢,首先,我们两个都会使用  但是基本上会关闭 rdb 的自动触发机制   通过手动触发进行内存快照的全量备份操作,其次,我们使用 aof使用every secd 每秒落库来落库到磁盘。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RedisRDBAOF是两种不同的持久化机制。RDB全称Redis Database Backup file,它是将内存中的所有数据记录在磁盘上的快照文件。当Redis实例故障重启后,可以从磁盘中的RDB文件读取数据来进行恢复。RDB文件默认保存在当前运行目录,每次触发RDB时会生成一个新的RDB文件来覆盖旧文件,以保证备份数据的最新性。 AOF全称Append Only File,它是将Redis的操作以日志的形式追加到文件中。AOF文件的保存路径与RDB的路径一致。如果同时开启了RDBAOFRedis会优先根据AOF文件来进行数据恢复。 RDBAOF的目的都是为了将Redis中的数据持久化到磁盘中,以防止数据丢失。因为Redis中的数据是基于内存的,一旦服务器断电或宕机,数据就会直接丢失。通过使用RDBAOF,可以在Redis实例故障重启后,根据备份文件进行数据恢复。 总结来说,RDB是将内存中的数据直接拷贝到文件中的持久化方式,而AOF是将Redis的操作以日志的形式追加到文件中的持久化方式。根据配置的不同,可以选择使用RDBAOF或同时使用两者来实现数据持久化。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span> #### 引用[.reference_title] - *1* *4* [详解RedisRDBAOF](https://blog.csdn.net/u014225032/article/details/125856164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis持久化的两种方式:RDBAOF(详解)](https://blog.csdn.net/starboyxyh/article/details/127503310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值