Redis代码实践总结(三)——redis持久化

Redis如何将数据写入磁盘

持久性是指将数据写入持久存储,例如固态磁盘 (SSD)。Redis 提供了一系列持久性选项。这些包括:

  • RDB(Redis 数据库):RDB 持久性以指定的时间间隔执行数据集的时间点快照。
  • AOF(仅追加文件):AOF持久性记录服务器接收到的每个写操作。然后可以在服务器启动时再次重播这些操作,从而重建原始数据集。命令使用与 Redis 协议本身相同的格式进行记录。
  • 无持久性:您可以完全禁用持久性。有时在缓存时会使用到这一点。
  • RDB + AOF:您还可以在同一个实例中组合 AOF 和 RDB。

总结 :

持久化是因为要考虑redis的重启或崩溃的情况。 持久化机制将 Redis 数据库的状态保存到磁盘中,以便在重新启动时可以将数据重新加载到内存中,从而保护了数据的完整性和持久性。
如果你的redis里的key-value不重要,那么就不用搞这个。
(当然一般的重要的东西,我们都会落库,不会放到redis。 但是如果你用了redis 保存一些很重要的东西,那么这一部分就很有必要了)

关系型数据库的优点

  • RDB 是 Redis 数据的非常紧凑的单文件时间点表示形式。RDB 文件非常适合备份。例如,您可能希望在最近 24 小时内每小时归档一次 RDB 文件,并在 30 天内每天保存一个 RDB 快照。这使您可以在发生灾难时轻松恢复不同版本的数据集。
  • RDB 非常适合灾难恢复,它是一个紧凑的文件,可以传输到远程数据中心或 Amazon S3(可能是加密的)。
  • RDB 最大限度地提高了 Redis 的性能,因为 Redis 父进程为了持久化需要做的唯一工作就是派生一个子进程,该子进程将完成其余所有工作。父进程永远不会执行磁盘 I/O 或类似操作。
  • 与 AOF 相比,RDB 允许更快地重新启动大数据集。
  • 在副本上,RDB 支持重启和故障转移后的部分重新同步。

总结

Redis作为内存数据库,当它写入磁盘时,有两个策略或者说方案。一是RDB,一是AOF。
RDB相当于快照,也就是redis内存的备份。这个备份有几种时间策略,比如说每小时一次,或者redis 内存的键改动多少次后备份一次。好处是它很少影响性能,以及备份了多个时间点的数据。缺点是RDB可能丢失最近几分钟或近一个小时的改动。
Redis目前默认是RDB,会生产dump.rdb文件,但是RDB的参数配置是没有打开的。也就是不会默认每小时保存快照。

AOF相当于记录了redis数据库的所有写入操作,类似于db会记录操作日志。
那么为了记录redis的每个写入操作,对于性能上有一些影响,相对的,对于数据的完整性方面就比RDB更好。优点是能够保证最新的操作记录和内存数据,缺点是文件会比RDB大。
目前AOF的有几种同步(fsync )策略。比如每秒同步一次,每次写操作都同步一次,和根据不同步。推荐的是每秒同步一次。

操作记录

RDB

打开redis.conf配置文件
在这里插入图片描述
dir这个配置会影响dump.rdb的位置,默认是./ 表示dump文件会 保存在 Redis 服务器启动时的工作目录(working directory)中。工作目录通常是运行 Redis 服务器的当前目录
也就是这个目录下;
在这里插入图片描述

在这里插入图片描述
save配置没有放开注释,表示rdb不会继续生产文件了。当你要用,记得放开save这个配置。

AOF

您可以在配置文件中打开 AOF:

appendonly yes

在这里插入图片描述
标红的是两个重要的aof配置。 具体含义看下面这个截图。
在这里插入图片描述
注释里也说明了aof和rdb是可以同时使用的,但是aof会优先,因为他更能保证durability(acid里的d 表示持久性)

在这里插入图片描述

总结

当我同时打开aof和rdb时。我有了这些文件:在这里插入图片描述

最后: 如果真的要持久化,不管rdb还是aof,记得定时将dump文件,aof文件这些复制到远端其他机器上。这样当机器损坏时,就派上用场了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值