• Redis的持久化机制


    一、Redis的持久化机制实现及原理

    Redis的强劲性能很大程度上是由于它所有的数据都存储在内存中,当然如果redis重启或者服务器故障导致redis重启,所有存储在内存中的数据就会丢失。但是在某些情况下,我们希望Redis在重启后能够保证数据不会丢失。

    1. 将redis作为nosql数据库使用。
    2. 将Redis作为高效缓存服务器,缓存被击穿后对后端数据库层面的瞬时压力是特别大的,所有缓存同时失效可能会导致雪崩。

    这时我们希望Redis能将数据从内存中以某种形式同步到硬盘上,使得重启后可以根据硬盘中的记录来恢复数据。Redis支持两种方式的持久化,一种是RDB方式、另一种是AOF(append-only-file)方式,两种持久化方式可以单独使用其中一种,也可以将这两种方式结合使用。

    • RDB:根据指定的规则“定时”将内存中的数据存储在硬盘上。
    • AOF:每次执行命令后将命令本身记录下来。

    二、RDB模式

    RDB的持久化方式是通过快照(snapshotting)完成的,它是Redis默认的持久化方式,配置如下。

    # save 3600 1
    # save 300 100
    # save 60 10000
    
    • 1
    • 2
    • 3

    Redis允许用户自定义快照条件,当符合快照条件时,Redis会自动执行快照操作。快照的条件可以由用户在配置文件中配置。配置格式如下

    save <seconds> <changes>
    
    • 1

    第一个参数是时间窗口,第二个是键的个数,也就是说,在第一个时间参数配置范围内被更改的键的个数大于后面的changes时,即符合快照条件。当触发条件时,Redis会自动将内存中的数据生成一份副本并存储在磁盘上,这个过程称之为“快照”,除了上述规则之外,还有以下几种方式生成快照。

    1. 根据配置规则进行自动快照
    2. 用户执行SAVE或者GBSAVE命令
    3. 执行FLUSHALL命令
    4. 执行复制(replication)时

    2.1 根据配置规则进行自动快照

    修改redis.conf文件,表示5秒内,有一个key发生变化,就会生成rdb文件。

    save 5 1        # 表示5s以内至少发生1个key变化(新增、修改、删除),则重写rdb文件
    save 300 100
    save 60 10000
    
    • 1
    • 2
    • 3

    修改文件存储路径

    dir /data/program/redis/bin
    
    • 1

    其他参数配置说明
    在这里插入图片描述
    如果需要关闭RDB的持久化机制,可以参考如下配置,开启 save ,并注释其他规则即可

    save ""
    #save 900 1
    #save 300 10
    #save 60 10000
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    R语言ggplot2可视化:使用ggpubr包的ggbarplot函数可视化柱状图、palette参数自定义不同水平柱状图边框以及填充的颜色
    华为机试 - 数组二叉树
    此博客不在使用通知
    C++ Lambda表达式
    牛客周赛 Round 51
    《计算机操作系统-第二章》之操作系统的运行机制与体系结构
    CPU性能分析--火焰图使用
    redux太繁琐?一文入门学会使用mobx简化项目的状态管理
    多线程(基础)
    Neural Radiance Fields (NeRF) 和 3D Gaussian Splatting区别
  • 原文地址:https://blog.csdn.net/qq_37325859/article/details/125545252