Redis持久化的两种模式--RDB和AOF

最近呢,我使用到redis的缓存这方面的知识,因此去加深了一下学习,故有一些积累的东西,在这里给你们分享一下;顺便也看成笔记通常的存在,以避免之后用到的时候,又去再次查找,难道本身记录的知识,它不香吗?java


1. Redis持久化策略

1.1什么是持久化

1.1.1持久化介绍

     运行环境: redis运行环境在计算机的内存中.若是redis服务器意外宕机,或者机房意外断电等.那么内存中的数据将会所有清空.势必形成业务数据的丢失. 稳定性太差。redis

     并且因为Redis的数据都存放在内存中,若是没有配置持久化,redis重启后数据就全丢失了,因而须要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,能够从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另一种是AOF(append only file)持久化(原理是将Reids的操做日志以追加的方式写入文件)。数据库

1.1.2 持久化策略介绍

     持久化:能够将内存数据按照指定的规则保存到磁盘中.当redis重启时,根据配置文件中指定的持久化文件.实现数据的恢复.缓存

保存方式:服务器

  • 1.多久保存一次?app

               1.指定周期保存 2.实时保存异步

  • 2.保存的是什么?性能

          1.保存key-value结构 2.保存用户的操做记录学习

  • 3.带来的额外的开销? 是否容许?

          1.可能会丢失数据. 2.持久化文件太大.不易维护.日志

2. RDB模式

2.1 RDB模式介绍

  • 1.RDB模式是redis中默认的持久化的策略

  • 2.RDB模式记录的是Redis的内存快照 记录速度更快

  • 3.RDB模式是按期持久化.可能会致使少许的数据丢失.

  • 4.若是用户能够容许少许的数据丢失,则首选RDB模式.由于RDB模式工做的效率最高.

2.2 RDB模式命令

  • 1.save指令 将内存数据立刻持久化到硬盘中. 该操做是阻塞的. 持久化操做优先.

  • 2.bgsave指令 后台执行持久化操做. 不能保证当即立刻持久化. 当服务器空闲时,会进行持久化操做.(内存不忙) 不会陷入阻塞.

  • 3.RDB模式能够实现自动的持久化.

2.3 RDB模式的持久化策略

在redis的配置文件redis.conf中搜索save--:/save,咱们将看见一下信息

save 900 1      900秒内执行1次set操做.则持久化一次.

save 300 10     300秒内执行10次set操做.则持久化一次.

save 60 10000   60秒内执行10000set操做.则持久化一次.

#save 1 1        1秒内执行1set操做.则持久化一次   性能过低.

若是有特殊的需求,能够修改持久化策略.可是须要注意性能问题。

2.4 RDB模式配置

前面一列是行数,我相信你们都懂啊!

253 dbfilename dump.rdb    能够修改持久化文件的名称

 263 dir ./                 持久化文件的位置  ./当前文件目录

3. AOF模式

3.1 AOF模式介绍

  • 1.AOF模式默认条件下是关闭的,须要手动开启.

  • 2.AOF模式能够实现数据的实时持久化.

  • 3.AOF模式,记录的是用户的操做的过程.以追加的形式添加到配置文件以后.

  • 4.AOF模式的持久化是异步操做.不会影响用户的使用.用户使用不会陷入阻塞.

  • 5.因为AOF模式记录的是用户的操做过程,因此持久化文件较大.恢复数据时间较长.

3.2AOF模式配置

开启AOF模式

699 appendonly yes

703 appendfilename "appendonly.aof"     持久化文件名称

3.3AOF和RDB模式同时配置问题

若是RDB模式和AOF模式同时存在,以AOF模式为主. 若是不想开启AOF模式须要将配置关闭.

699 appendonly no

3.4 AOF模式持久化策略

appendfsync always   只要用户执行更新操做,就会持久化到文件中

appendfsync everysec 默认策略  表示每秒同步一次 

appendfsync no        不主动持久化.

4. AOF和RDB总结

  • 1.RDB模式持久化是同步的方式,AOF模式异步操做.

  • 2.RDB模式记录的是内存数据的快照(只保留最新数据),

          AOF模式记录的是用户的操做过程(持久化文件较大).

  • 3.RDB模式可能会丢失少许数据.AOF模式能够实现实时持久化操做.保证数据"不丢失"

  • 4.RDB模式性能更高.AOF模式运行更为稳定.可是恢复数据的时间较长,须要按期清理维护持久化文件.

相关文章
相关标签/搜索