Redis的持久化详解

本文详细介绍了Redis的两种持久化方式:RDB(Redis Database Backup)和AOF(Append Only File)。RDB是通过创建数据快照实现,而AOF则记录每次写操作。RDB适合全量恢复,AOF保证数据不丢失。推荐在实际开发中结合两者使用,以确保数据安全性。
摘要由CSDN通过智能技术生成

1.Redis持久化

  • RDB持久化
    • RDB是默认开启的
    • 执行save或者bgsave将数据写入dump.rdb文件中

1.1.RDB持久化

RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。

(简单理解):

        将当前redis的缓存数据写入dump.rdb文件中(二进制),防止在redis宕机后数据丢失,redis重启时 --> 会去读取dump.rdb,读取到内存空间

1.1.1.RDB的执行时机

  • 执行save命令
    • save命令是阻塞方法,导致所有写入无法正常执行,生产环境基本不使用,只有在数据迁移时使用
  • 执行bgsave命令
    • bgsave命令是异步执行RDB,主进程可以继续执行用户的写入操作
      • 注意redis是单线程应用,无法开启多线程
      • bgsave的底层是开启一个新的进程,进行对写入
  • Redis停机
  • RDB的条件满足
    • 可以看配置文件的设置
    •  900秒内,如果至少有1个key被修改,则执行bgsave
Redis持久化是为了避免进程退出导致数据的永久丢失而设计的。由于Redis是基于内存的数据库,数据存储在内存中,关闭服务或者断电会导致数据丢失。为了解决这个问题,Redis提供了两种持久化方式:AOF(Append Only File)和RDB(Redis Database File)。 AOF持久化是通过将写操作追加到AOF文件中来实现的。AOF文件是一个只追加的日志文件,记录了写操作的命令。当Redis重启时,Redis会根据AOF文件中的命令重新执行一遍,从而恢复数据。AOF文件的大小会随着写操作的增加而增大,因此可能会占用较大的磁盘空间。为了避免AOF文件过大,Redis提供了AOF重写机制,可以定期地将AOF文件重写为紧凑格式,只保留可以恢复数据库状态的最小命令集合。 RDB持久化是通过将当前数据库状态快照保存到一个二进制文件中来实现的。RDB文件是一个经过压缩的二进制文件,包含了数据库的数据和键值对的过期时间等信息。RDB持久化是通过fork子进程来实现的,它会将当前数据库状态保存到一个临时文件中,然后替换原来的RDB文件。RDB持久化适用于数据备份和灾难恢复。 除了持久化之外,Redis还支持快照机制。快照是将当前数据库状态保存到一个RDB文件中,可以手动触发或者通过配置选项定期触发。快照只保存了数据库的最新状态,而不是增量的写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值