Redis的持久化方式

 更新时间:2024年10月24日 08:42:27   作者:Carver0808  
Redis提供了两种主要的持久化方式:RDB和AOF,RDB通过定时快照的方式保存数据状态,而AOF记录每个写操作以便于重启时重放,两者可以结合使用,且在重启时AOF文件会被优先用于数据恢复,RDB快照具有速度快、节省磁盘空间的优点,但可能会丢失最近的数据

一、概述

Redis提供了不同的持久性选项:

RDB持久性按指定的时间间隔执行数据集的时间点快照。

AOF持久性会记录服务器接收的每个写入操作,这些操作将在服务器启动时再次播放,以重建原始数据集。使用与Redis协议本身相同的格式记录命令,并且仅采用追加方式。当日志太大时,Redis可以在后台重写日志。

如果您希望,只要您的数据在服务器运行时就一直存在,则可以完全禁用持久性。

可以在同一实例中同时合并AOF和RDB。请注意,在这种情况下,Redis重新启动时,AOF文件将用于重建原始数据集,因为它可以保证是最完整的。

Redis提供了不同的持久性方式,即为RDB和AOF两种持久化方式,RDB持久化是指,在指定的时间间隔内将内存中的数据集写入到磁盘中,这个时间间隔可以在配置文件中手动配置,而AOF持久化则记录的时每个写入的操作而不是数据集,在恢复数据时,在服务器启动时再一次执行写入操作,重新建立数据,为了避免AOF文件会越来越大,AOF采用文件追加的方式,当AOF的大小超过所设定的阈值时,redis会启动AOF的内容压缩,只保留可以恢复数据的最小指令集。

在redis中同时开启AOF和RDB两种持久化方式,redis默认优先取AOF的数据。

二、Redis持久化–RDB

1、RDB的保存文件和保存路径

在redis的redis.conf可以指定RDB保存文件名字,文件名以.rdb结尾,如下图dump.rdb。可以在redis.conf中指定,RDB文件的保存路径,如下图RDB文件将会保存在/opt/myRedis/redis_dbfile/目录下

2、RDB的保存策略

  • 保存策略一

自动备份规则(满足以下三种条件其中之一则生成rdb文件)

save 900 1		 #900秒内完成1次对数据的改变
save 300 10		 #300秒内完成1次对数据的改变
save 60 10000    #一分钟内完成1次对数据的改变	
  • 保存策略二

正常关闭redis触发持久化,如使用shutdown命令关闭redis(shutdown),如下图:

3、RDB持久相关配置(在redis.conf配置文件中)

stop-writes-on-bgsave-error yes 后台存储存储发生错误时禁止写入

  • 默认为yesrdbcompression yes 启动rdb文件压缩,耗费CPU资源
  • 默认为yesrdbchecksum yes 对rdb数据进行校验,耗费CPU资源
  • 默认为yesdbfilename dump.rdb rdb文件名称dir ./ rdb文件保存目录

4、RDB的备份与恢复

RDB的备份

先通过config get dir 查询到rdb文件的目录,然后再将*.rdb文件拷贝到别的地方,简单来说就是找到你需要备份的rdb文件,然后拷贝就完成了rdb的备份

RDB的恢复

  • a.关闭redis
  • b.把rdb文件放到redis的工作目录下
  • c.启动redis,备份的数据就会直接加载

5、RDB的优缺点

优点:

节省磁盘空间恢复数据速度快

缺点:

虽然redis在持久化创建一个子线程进行持久化,并且使用了“写时复制”技术,但是如果数据足够庞大还是比较消耗性能的。

在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改

三、Redis持久化–AOF

1、AOF的保存文件和保存路径

AOF默认是不开启的,需要在配置文件中手动配置,如下图在redis.conf中将appendonly设置为yes表示开启AOF持久化,appendfilename参数表示AOF保存文件,AOF文件保存路径和RDB文件保存路径一致,即设置dir参数

2、AOF的保存策略

在配置文件中设置AOF保存策略,当appendfsync属性设置为always表示每次redis的写入都会被记入日志;

everysec表示每秒记入日志一次,如果宕机,本秒的数据可能丢失;

no表示不主动记入

3、AOF的重写机制

AOF是通过记录redis的写入命令来实现持久化的,在恢复数据时,在服务器启动时再一次执行写入操作,重新建立数据,所以问题就诞生了,AOF文件的大小随着时间的流逝一定会越来越大,大大影响了redis服务器的性能,避免出现此种情况,AOF新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集.如下图实例,AOF用一条rpush list “B” “D” “E” “F” “G” “a” "b"代替前面的5条命令。

4、AOF的备份与恢复

AOF的备份和恢复和RDB的备份和恢复操作一致,都是拷贝备份文件,需要恢复时将备份文件放到redis的工作目录下,启动系统即加载数据。

注意:当AOF和RDB同时开启时,系统默认取AOF的数据。

5、AOF的优缺点

优点:

备份机制更健壮,丢失数据的概率更低可读的持久化日志文本,通过操作AOF稳健,可以处理误操作

缺点:

比起RDB占用更多的磁盘空间恢复数据比RDB慢每次读写都写入AOF的话,有一定的性能压力存在个别bug,造成恢复不能

四、两种持久化方式如何选型

1、官方推荐两个都使用

2、如果对数据不敏感,可以选单独用RDB

3、不建议单独使用AOF,因为会出现个别bug

4、如果只是做纯内存缓存,可以都不用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Redis瞬时高并发秒杀方案总结

    Redis瞬时高并发秒杀方案总结

    本文讲述了Redis瞬时高并发秒杀方案总结,具有很好的参考价值,感兴趣的小伙伴们可以参考一下,具体如下:
    2018-05-05
  • Redis缓存键清理问题解决

    Redis缓存键清理问题解决

    对于使用redis作为缓存服务器的开发者而言,定期清除redis中的缓存数据是非常必要的,本文主要介绍了Redis缓存键清理问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Redis常用的数据结构及实际应用场景

    Redis常用的数据结构及实际应用场景

    本文介绍了Redis中常用的数据结构,包括字符串、列表、集合、哈希表、有序集合和Bitmap,并详细说明了它们在各种场景下的使用,需要的朋友可以参考下
    2024-05-05
  • Redis 键值设计使用总结

    Redis 键值设计使用总结

    这篇文章主要介绍了Redis键值设计的使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Redis Cluster 字段模糊匹配及删除

    Redis Cluster 字段模糊匹配及删除

    在数据库内我们可以通过like关键字、%、*或者REGEX关键字进行模糊匹配。而在Redis内我们如何进行模糊匹配呢?本文就来介绍一下
    2021-05-05
  • redis过期回调坑的解决

    redis过期回调坑的解决

    Redis提供了一种过期回调的机制,可以在某个键过期时触发一个回调函数,然而,在实际使用中,我们往往会遇到一些灾难性的问题,其中一个就是在使用过期回调的时候,我们可能会遭遇到无法预料的错误,本文就详细的介绍一下
    2023-09-09
  • Redis保证数据不丢失的两种方法

    Redis保证数据不丢失的两种方法

    Redis 实现数据不丢失的关键在于使用了多种持久化机制,以确保数据在内存和磁盘之间的持久性,本文给大家介绍了Redis保证数据不丢失的两种方法,持久化和集群运行,我们分别来看它们两的具体实现细节,感兴趣的同学跟着小编一起来看看吧
    2023-11-11
  • Redis常见数据类型List列表使用详解

    Redis常见数据类型List列表使用详解

    Redis的List是一种有序的字符串集合,支持两端高效插入和删除,适用于队列和栈,这篇文章主要介绍了Redis常见数据类型List列表使用的相关资料,需要的朋友可以参考下
    2024-12-12
  • Redis存储的列表分页和检索的实现方法

    Redis存储的列表分页和检索的实现方法

    在 Redis 中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,以下是 Redis 列表的分页和检索的实现方法,需要的朋友可以参考下
    2025-02-02
  • redis实现共同好友的思路详解

    redis实现共同好友的思路详解

    微信朋友圈大家都玩过吧,那么朋友圈的点赞、评论只能看到自己好友的信息是怎么操作的呢?下面通过本文给大家分享下此功能的实现流程,对redis实现共同好友的方法感兴趣的朋友一起看看吧
    2021-05-05

最新评论