redis持久化

redis有两种持久化方式,一种RDB持久化(snapshotting),一种AOF持久化(append only file)
 1、RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
该方式下redis数据库只有一个备份文件,如果系统出现灾难性故障容易恢复。
开始持久化前,RDB只需要fork一个子进程,之后由子进程完成持久化,极大的避免了服务京城执行IO操作,实现了性能最大化。
RDB持久化之前发生宕机现象,此前没来得及写入磁盘的数据都将丢失
由于RDB是通过fork完成数据持久化,因此,数据集较大时,可能导致服务器停止服务。
2、AOF:以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录.
  3种同步策略,即每秒同步、每修改同步和不同步
  该机制对日志文件的写入操作采用的是append模式,因此在写入过程中即使出现宕机现象,也不会破坏日志文件中已经存在的内容
包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作
如果日志过大,Redis可以自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,同时Redis还会创建一个新的文件用于记录此期间有哪些修改命令被执行。更好的保证了数据的安全性。
由于同步策略不同,AOF运行效率往往慢于RDB.
相同数量的数据集,AOF文件通常大于RDB文件。进行数据回复时,速度比RDB慢。

常用配置
1、RDB持久化配置
Redis会将数据集的快照dump到dump.rdb文件中(自动触发)。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率,在打开redis.conf文件之后,我们搜索save,可以看到下面的配置信息:

save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
2、AOF持久化配置
在Redis的配置文件中存在三种同步方式,它们分别是:
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no #从不同步。高效但是数据不会被持久化。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值