美文网首页Redis入门到进阶
Redis持久化的两种模式--RDB和AOF

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

作者: Xing_Gou | 来源:发表于2020-03-23 10:09 被阅读0次

    最近呢,我有用到redis的缓存,所以去加深了一下学习,故有一些积累的东西,在这里给大家分享一下;顺便也当作笔记一般的存在,以免以后用到的时候,又去再次查找,难道自己记录的知识,它不香吗?


    1. Redis持久化策略

    1.1什么是持久化

    1.1.1持久化介绍

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

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

    1.1.2 持久化策略介绍

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

    保存方式:

    • 1.多久保存一次?

                 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模式运行更为稳定.但是恢复数据的时间较长,需要定期清理维护持久化文件.


    前文是----如何安装Redis,以及对Redis配置文件的更改和测试
    后文是---Redis的分片机制包含对一致性HASH算法的运用

    相关文章

      网友评论

        本文标题:Redis持久化的两种模式--RDB和AOF

        本文链接:https://www.haomeiwen.com/subject/ajyiyhtx.html