zoukankan      html  css  js  c++  java
  • Redis的持久化

    概述

    Redis的高性能是由于它所有数据都存储在内存中,为了能让Redis在重启之后仍然保证数据不丢失,那么就需要将数据从内存中同步到硬盘上,这个过程称为持久化操作,Redis的持久化有两种方式,一种叫RDB方式,另一种是AOF方式,我们可以选择其一使用,也可以两者结合。(需要手动配置)

    持久化使用的方式

    1. RDB持久化

      • 默认支持,不需要配置。

      • 在指定的时间间隔内,将内存中的数据集快照写入到磁盘)

    2. AOF持久化

      • 将以日志的方式记录服务器所处理的每一个操作,在Redis启动之初,它会读取该文件,来重新构建我们的数据库,这样保证我们启动后数据中的数据是完整的。
    3. 无持久化

      • 通过配置来禁用Redis的服务器的一个持久化的功能,这样我们就可以认为Redis是缓存的一个机制了。
    4. 同时使用RDB和AOF

    RDB的方式

    优势:

    1. 利于文件备份

    2. 非常轻松的将一个单独的文件压缩后转移到其他的存储介质中

    3. 性能最大化(如果数据集很大,RDB启动效率会更高)

    劣势:

    1. 会出现一些宕机的情况(数据会丢失)

    2. 如果数据集非常大,可能会导致服务器停止几毫秒甚至1秒

    AOF的方式

    优势:

    1. 带来更高的数据安全性。

      • Redis中提供了三种同步策略:
        1. 每秒同步(异步完成,效率高,但是一旦系统宕机,这1s内修改的数据丢失)
        2. 每修改同步(同步持久化,每一次数据发生变化都会被记到磁盘中,效率最低,但是最安全)
        3. 不同步
    2. 对于日志文件的写入采用append模式(追加),即使写入过程中出现了宕机现象,也不会破坏日志文件中已经存在的内容;如果本次操作只是写入了一半数据就出现了系统崩溃,也没关系Redis下一次启动之前可以通过一个工具解决数据一致性的问题。

    3. 如果日志过大,Redis可以自动启动重写机制。

    4. AOF包含一个格式非常清晰、易于理解的日志文件,用于记录所有的修改操作。我们也可以通过这个文件,完成数据的重建。

    劣势:

    1. 对于相同数量的数据集而言,AOF比RDB文件大一点。

    2. 根据同步策略的不同,AOF运行效率比RDB低。

  • 相关阅读:
    Spring经典视频教程大集合
    使用jsonlib进行Java和JSON之间的转换
    c:import Unable to get RequestDispatcher for Context
    打开IE都会弹出欢迎界面“欢迎使用Internet Explorer 8”
    Struts2 标签 用法示例 (
    as3相关的frameworks
    as相关的框架引擎应用集合
    init
    XNA框架基础——疑难解答
    XNA框架基础——XNA的注意事项
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14345259.html
Copyright © 2011-2022 走看看