zoukankan      html  css  js  c++  java
  • redis学习-持久化机制

    前言

    redis是一个支持持久化的数据库,也就是说redis需要将内存中的数据往硬盘中来保持持久化。

    redis持久化有两种方式:

    1. snapshotting(快照)方式,也即RDB方式
    2. append-only(aof)方式

    RDB

    snapshotting(快照)方式,也即RDB方式,是redis的默认方式,将内存中的数据库以快照方式写入二进制文件中(dump.rdb),可以通过配置文件设定,在一段时间n秒内,修改了超过m个key,则自动做快照。

    快照方式刷盘有时间间隔,应对突发状况会导致最近一次快照以后的数据全部丢失。在数据不强求完整性的情况下可以选择这种方式。

    snapshotting的默认设置如下:

    save 900 1	# 900s内 1个key被修改 则自动刷盘,下同理
    save 300 10
    save 60 10000
    

    AOF

    append-only(aof)方式在每一次写命令后都会写入到aof文件中。当服务器重启后会将执行aof中存储的全部命令以恢复数据库。

    aof方式默认也不是立即写到磁盘中,可以通过配置文件修改策略,在性能和持久性中找一个平衡。

    aof设置如下

    appendonly yes     # 开启aof模式
    
    # appendfsync always      # 接到命令立即写入磁盘,性能差,持久性强
    # appendfsync everysec      # 每秒写盘一次,性能和持久化折中,默认是这种方式
    # appendfsync no      # 性能最优,但持久性依赖OS,just let the OS flush the data when it wants.
    

    redis使用率高的情况下每秒10W+的命令是常有的,因此在生产环境下使用always是最稳妥的策略。

  • 相关阅读:
    大三学习进度55
    大三学习进度56
    深入理解Java:注解(Annotation)自定义注解入门
    Django2实战示例 第三章 扩展博客功能
    Django2实战示例 第二章 增强博客功能
    12月07日总结观影数据集之大数据分析数据清洗
    12月06日总结
    12月04日阅读笔记
    12月03日总结
    12月05日总结
  • 原文地址:https://www.cnblogs.com/bcomll/p/13497391.html
Copyright © 2011-2022 走看看