Redis的持久化

Redis的持久化

1、目标
Redis的高性能是由于其将素有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或者将二者结合使用。

2、RDB持久化机制
RDB持久化是指在指定时间间隔内将内存中的数据集快照写入磁盘,这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb,这种方式是默认已经开启了,不需要配置。

RDB持久化机制的配置:
redis.windows.conf
save 900 1
save 300 10
save 60 10000

其中,上面配置的是RDB方式持久化时机

关键字时间(秒)Key修改数量解释
save9001每900秒(15分钟)至少有1个key发生变化,则dump内存快照
save30010每300秒(5分钟)至少有10个key发生变化,则dump内存快照
save6010000每10000秒(1分钟)至少有10000个key发生变化,则dump内存快照

3、AOF持久化机制
AOF持久化机制会将每一个收到的写命令都通过write函数追加到文件中,默认的文件名是appendonly.aof。这种方式默认是没有开启的,要使用时候需要配置。

在redis.windows.conf配置文件中有如下配置:
appendonly no
将appendonly修改为yes,但是启动redis的时候需要指定该文件,也就是意味着不能直接点击了,需要输入命令启动:redis-server.exe redis.windows.conf
开启AOF持久化机制后,默认会在目录下产生一个appendonly.aof文件
下面配置为AOF持久化的时机,解释如下:(在redis.windows.conf配置)

关键字持久化时机解释
appendfsyncalways没执行一次更新命令,持久化一次
appendfsynceverysec每秒钟持久化一次
appendfsyncno不持久化

4、RDB持久化机制
优点:
(1)RDB是一个非常紧凑(compact)的文件,它保存了Redis在某个时间点上的数据集。这种文件非常适合用于进行备份。
(2)RDB在恢复大数据集时的速度比AOF的恢复速度要快(因为其文件比AOF的小)。
(3)RDB的性能要比AOF更好
缺点:
(1)RDB的持久化不够及时,可能会存储在数据丢失。
(2)RDB持久化时如果文件过大可能会造成服务器的阻塞,停止客户端请求。
5、AOF持久化机制
优点:
(1)AOF的持久性更加的耐久(可以每秒,或每次操作保存一次)。
(2)AOF文件有序的保存了对数据库执行的所有写入操作,这些写入操作以Redis协议的格式保存,因此AOF文件的内容非常容易被人读懂,对文件进行分析(parse)也很轻松。
(3)AOF是增量操作。
缺点:
(1)对于相同的数据集来说,AOF文件的体积通常要大于RDB文件的体积。
(2)根据所使用的fsync策略,AOF的速度可能会慢于RDB。
6、选择
如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失,选择RDB持久化,如果你对数据的完整性要求较高,选择AOF。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值