Redis持久化方式

Redis高性能归功于它将数据保存在内存中,读取数据速度很快。也正是因为Redis将数据保存在内存中,容易导致数据丢失,导致不安全因素,所以将Redis中的数据持久化到硬盘就很有必要。目前Redis的持久化方式有两种,一种是RDB方式,一种是AOF方式。下面详细讲解RDB方式和AOF方式持久化。

一、Redis的RDB方式持久化数据到硬盘

这种方式是Redis默认支持的,不要进行任何的配置就可进行。RDB方式是让数据在指定的时间内将数据集快照保存到硬盘,比如设置多少秒让数据集快照保存到硬盘。

RDB方式持久化的优点:

1、当使用RDB方式持久化的时候,所有的数据集快照都会保存在同一个文件中,利于数据的备份;

2、RDB方式持久化时,持久化进程会分叉出子进程,让其子进程去执行持久化工作,这样可以避免服务器进程进行I/O流的操作

3、相比于AOF方式持久化,当持久化大大数据集的时候,RDB方式的启动效率更高

RDB方式持久化的缺点:

1、数据高可用性(最大限度的保证数据完整性)不好,因为RDB采用的是特定时间段对数据集快照保存到硬盘,假设30秒保存一次,如果在28秒的时候出现了异常或者服务器宕机,那么前28秒的数据集快照将无法保存的硬盘,会造成数据丢失。 

RDB方式持久化默认配置:

打开redis的配置文件redis.conf文件,第147,182行,191行,如下图:

RDB方式持久化的默认配置

持久化文件文件名和保存路径

redis的目录下的持久化文件dump.rdb

二、Redis的AOF方式持久化数据

这种方式是记录Redis的每一步操作到日志,当Redis服务器重新启动的时候,会自动去读取该日志文件,并且重新构建Redis数据库,以保证数据的完整性。

AOF持久化的优点:

1、AOF持久化方式有三种,分别是每秒持久化,每修改持久化,不持久化

a)、每秒持久化

顾名思义,就是每隔一秒就会进行一次持久化,这种方式是异步进行的,效率很高,但是如果服务器宕机,也就意味着这一秒的数据丢失了,不能保证数据的高可用性和安全性

b)、每修改持久化

顾名思义,也就是每进行一次修改操作就进行一次持久化操作,这种方式是同步的,这也就意味着效率很低,但是安全性是最高的

c)、不持久化

就是不进行持久化的操作

2、由于AOF方式持久化是将每一步操作都记录到日志当中,并且持久化操作是通过append的方式追加数据的,即使服务器宕机或者崩溃,也并不影响append以前的数据完整性,即使服务器宕机或者服务器崩溃了,也可以通过redis-check-aof工具来解决数据一致性的问题。

3、如果日志文件数据量很大,redis会启动重写方案,建立一个新的日志文件,将后续的修改操作进行详细记录,并且将后续的操作通过append的方式追加到原来的日志文件中,日志文件详细记录了每一步修改操作,因此可以很容易的对数据进行重建。

AOF方式持久化的缺点

1、由于AOF方式详细记录了 每一步修改操作,所以对于同样大小的数据集而言,AOF方式的日志文件比RDB持久化文件要大

2、两者同步策略不同,AOF方式的效率比RDB的效率要低。

AOF方式的配置:

同样打开redis的配置文件redis.conf文件

AOF方式持久化配置文件

appendonly.aof文件保存位置在redis安装目录下,与dump.rdb在同一级目录下。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值