新手村:Redis进阶篇二---持久化

本文介绍了Redis的两种持久化方式:RDB和AOF。RDB通过快照保存数据,适合备份和恢复,但无法实时持久化;AOF记录所有写命令,可实现秒级持久化,但在负载高时性能较低。AOF文件可读性强,支持多种同步策略。在实际应用中,通常结合两者使用,以兼顾数据安全和实时性。
摘要由CSDN通过智能技术生成


1. 简介

持久化即将数据保存到可永久保存的存储设备中。我们知道 Redis 为了保证效率而把数据都缓存在内存中,但当我们重启系统或关闭系统后,缓存在内存中的数据都会消失,所以为了让有些数据能保留下,Redis 持久化存储就应运而生。Redis 提供了两种方式进行持久化,一种是RDB 持久化,另一种是 AOF(append only file) 持久化,下面我们逐一介绍。

2. RDB 持久化

RDB 是 Redis 默认的持久化机制,它的工作原理是把当前内存中的数据生成快照 (snapshot) 的方式写入磁盘中的二进制文件中,默认的文件名为 dump.rdb。恢复时将快照文件直接读到内存中。RDB 有两种触发方式,分别是自动触发和手动触发。

2.1 自动触发

自动触发使用 save 相关配置触发,比如 “save m n”,表示在 m 秒内数据库存在 n 次修改时,自动触发BGSAVE (BGSAVE 命令在手动触发时会介绍)。Redis 默认配置如下:

save 900 1      # 在 900 秒内如果至少有 1 个 key 的值变化,则触发
save 300 10     # 在 300 秒内如果至少有 10 个 key 的值变化,则触发
save 60 10000   # 在 60 秒内如果至少有 10000 个 key 的值变化,则触发

当实际操作满足配置的 save 形式时就会进行 RDB 持久化,将当前的数据快照保存。

2.2 手动触发

手动触发进行 RDB 持久化涉及到两个 Redis 服务器命令:

  1. SAVE:执行一个同步保存操作,将当前 Redis 实例的所有数据快照以 RDB 文件的形式保存到磁盘中。

  2. BGSAVE:用于在后台异步保存当前数据库的数据到磁盘。

SAVE 命令由于是同步操作,因此会阻塞当前 Redis 服务器知道 RDB 持久化过程完成为止,对于内存比较大的实例会造成长时间阻塞,不建议在线上环境使用。BGSAVE 命令会执行 fork 操作创建一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值