Redis08-Redis的持久化

前言

前面我们介绍了Redis数据库以及键空间。这一篇我们继续介绍一下Redis的持久化。Redis持久化的方式有两种,一种是RDB的方式,一种是AOF的方式。

RDB的方式

RDB是Redis DataBase的缩写。是Redis默认的持久化方式,它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件是dump.rdb。通过配置文件中的save参数可以定义快照的周期。我们可以在 redis.conf配置文件中找到相关的配置,配置如下所示:

#   In the example below the behaviour will be to save: 
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed

save 900 1
save 300 10
save 60 10000

# RDB 持久化文件
dbfilename "dump.rdb"

# Note that you must specify a directory here, not a file name.
dir "/srv/redis/redis-6379"

默认的快照保存规则是,满足如下三个条件中的一条即可:

  1. 15分钟内至少有1个key改变
  2. 5分钟内至少有10个key改变
  3. 1分钟内至少有10000个key改变
    就会触发save命令,对快照进行保存。保存快照是通过一个单独的进程来进行保存的。

优点

  1. 只有一个文件dump.rdb,方便持久化
  2. 容灾性好,一个文件可以安全地保存到磁盘。
  3. 性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化,使用单独子进程进行持久化,主进程不会进行任何IO操作,保证了Redis的高性能。
  4. 相对于数据集大时,比AOF的持久化效率更高。

缺点

数据安全性低,RDB是间隔一段时间进行持久化的,如果持久化之间Redis发生故障,会发生数据丢失,所以这种方式更适合数据要求不严谨的时候。

AOF持久化

AOF持久化,则是将Redis执行的每次写命令记录到单独的日志文件中,当重启Redis会重新从持久化的日志文件中恢复数据。默认的话是不启动AOF持久化的,并且默认的aof文件名是appendonly.aof。让我们来看看 redsis.conf配置文件中的默认配置:

#默认不开启aof备份
appendonly no

# The name of the append only file (default: "appendonly.aof")
#默认的aof日志文件名是appendonly.aof
appendfilename "appendonly.aof"
# If unsure, use "everysec".

#默认的每秒备份一次
# appendfsync always
appendfsync everysec
# appendfsync no

如上所示:与aof备份相关的主要有三个配置,appendonly 配置用于指定是否开启aof备份,no的话表示不开启,yes的话表示开启。appendfilename配置用于指定aof日志文件名,这个一般不用改。appendfsync表示备份方式,其中:

  1. always方式表示一写命令就备份一次虽然安全,系统性能会降低,不推荐使用。
  2. everysec方式表示每一秒钟就备份一次,不管一秒钟变化了多少key,只备份一次,性能得到了一定的保护,推荐使用。
  3. no方式会查看当前服务器状态,如果状态良好,就进行备份(随机)。这种备份方式数据安全是没有保证的。
    三种备份方式
    性能上: always<everysec<no
    数据安全上:always<everysec<no
    在实际的生产中,我们应该同时使用两种持久化方式,一般情况下,当Redis重启的时候会优先载入aof文件来恢复原始的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值