redis的持久化方式RDB和AOF的区别

  • 时间:
  • 浏览:2
  • 来源:uu快3大小_uu快3网站_开奖历史

二者选着的标准,而是 看系统是我想要 牺牲有些性能,换取更高的缓存一致性(aof),还是我想要 写操作频繁的随后,不启用备份来换取更高的性能,待手动运行save的随后,再做备份(rdb)。rdb这类就更有些 eventually consistent的意思了。

RDB存在这类优势呢?

4). AOF含高而是 格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,大家儿也都才能通过该文件完成数据的重建。

save 900 1 #在900秒(15分钟)随后,有随后大概有而是 key存在变化,则dump内存快照。

1). 有随后你想保证数据的高可用性,即最大限度的外理数据丢失,没有RDB将有的是而是 很好的选着。有随后系统一旦在定时持久化随后再次出现 宕机间题,此前没有来得及写入磁盘的数据都将丢失。

3). 性能最大化。对于Redis的服务线程而言,在刚开始持久化时,它唯一需要做的而是 fork出子线程,随后再由子线程完成这类持久化的工作,而是 就都才能极大的外理服务线程执行IO操作了。

RDB又存在这类劣势呢?

RDB持久化是存在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork而是 子线程,先将数据集写入临时文件,写入成功后,再替换随后的文件,用二进制压缩存储。

3). 有随后日志过大,Redis都才能自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,一并Redis后会创建而是 新的文件用于记录此期间有这类修改命令被执行。有随后在进行rewrite切换时都才能更好的保证数据安全性。

2). 有随后RDB是通过fork子线程来协助完成数据持久化工作的,有随后,有随后当数据集较大时,有随后会原因分析整个服务器停止服务几百毫秒,甚至是1秒钟。

1). 该机制都才能带来更高的数据安全性,即数据持久性。Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事实上,每秒同步也是异步完成的,其下行带宽 也是非常高的,所差的是一旦系统再次出现 宕机间题,没有这类秒钟之内修改的数据有随后丢失。而每修改同步,大家儿都才能将其视为同步持久化,即每次存在的数据变化后会被立即记录到磁盘中。都才能预见,这类法律依据在下行带宽 上是最低的。至于无同步,不让多言,我我想要 大家儿都能正确的理解它。

在Redis的配置文件中存在并有的是同步法律依据,它们分别是:

本文转自 jiekegz  51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2049761

appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。

1). 对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的下行带宽 比 AOF 的恢复下行带宽 要快。

2). 根据同步策略的不同,AOF在运行下行带宽 上往往会慢于RDB。总之,每秒同步策略的下行带宽 是比较高的,同步禁用策略的下行带宽 和RDB一样高效。

最近在项目中使用到Redis做缓存,方便多个业务线程之间共享数据。有随后Redis的数据都存倒入内存中,有随后没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,都才能从磁盘中恢复数据。redis提供并有的是法律依据进行持久化,并有的是是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外并有的是是AOF持久化(原理是将Reids的操作日志以追加的法律依据写入文件)。没有这并有的是持久化法律依据有这类区别呢,改怎么才能 才能 选着呢?网上看完大多数有的是介绍这并有的是法律依据为什么么配置,为什么么使用,而是 没有介绍二者的区别,在这类应用场景下使用。

1). 一旦采用该法律依据,没有你的整个Redis数据库将只含高而是 文件,这对于文件备份而言是非常完美的。比如,你有随后打算每个小时归档一次最近24小时的数据,同需要要每天归档一次最近150天的数据。通过而是 的备份策略,一旦系统再次出现 灾难性故障,大家儿都才能非常容易的进行恢复。

AOF持久化配置

save 150 111500 #在150秒(1分钟)随后,有随后大概有111500个key存在变化,则dump内存快照。

AOF的劣势有这类呢?

2). 有随后该机制对日志文件的写入操作采用的是append模式,有随后在写入过程中即使再次出现 宕机间题,而是 会破坏日志文件含高随后存在的内容。然而有随后大家儿本次操作而是 写入了一半数据就再次出现 了系统崩溃间题,不让担心,在Redis下一次启动随后,大家儿都才能通过redis-check-aof工具来帮助大家儿外理数据一致性的间题。

appendfsync always #每次有数据修改存在时后会写入AOF文件。

save 150 10 #在150秒(5分钟)随后,有随后大概有10个key存在变化,则dump内存快照。

Redis会将数据集的快照dump到dump.rdb文件中。此外,大家儿也都才能通过配置文件来修改Redis服务器dump快照的频率,在打开6379.conf文件随后,大家儿搜索save,都才能看完下面的配置信息:

appendfsync no #并非同步。高效有随后数据不让被持久化。

RDB持久化配置

AOF持久化以日志的形式记录服务器存在理的每而是 写、删除操作,查询操作不让记录,以文本的法律依据记录,都才能打开文件看完详细的操作记录。

4). 相比于AOF机制,有随后数据集很大,RDB的启动下行带宽 会更高。

2). 对于灾难恢复而言,RDB是非常不错的选着。有随后大家儿都才能非常轻松的将而是 单独的文件压缩后再转移到其它存储介质上。

AOF的优势有这类呢?