• Redis的持久化详解


    Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。
    RDB持久化机制
    RDB持久化是指在指定的时间间隔内将内存中的数据集 快照 写入磁盘。
    这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。 这种方式是默认已经开启了,不需要配置.
    AOF持久化机制
    AOF持久化机制会将每一个收到的写命令都通过write函数追加到文件中,默认的文件名是appendonly.aof。 这种方式默认是没有开启的,要使用时候需要配置.
    RDB持久化机制优缺点
    优点
    RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集。 这种文件非常适合用于进行备份
    RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快(因为其文件要比AOF的小)
    DB的性能要比AOF更好
    缺点
    RDB的持久化不够及时,可能会存在数据丢失
    RDB持久化时如果文件过大可能会造成服务器的阻塞,停止客户端请求
    AOF持久化机制优缺点:
    优点
    AOF的持久性更加的耐久(可以每秒 或 每次操作保存一次)
    AOF 文件有序地保存了对数据库执行的所有写入操作, 这些写入操作以 Redis 协议的格式保存, 因此 AOF 文件的内容非常容易被人读懂, 对文件进行分析(parse)也很轻松。
    AOF是增量操作
    缺点
    对于相同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积
    根据所使用的 fsync 策略,AOF 的速度可能会慢于 RDB.

    选择:
    如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失,选择RDB 持久化。
    如果对数据的完整性要求比较高, 选择AOF。

  • 相关阅读:
    2017年计划安排
    Angular企业级开发(4)-ngResource和REST介绍
    Angular企业级开发(3)-Angular MVC实现
    Angular企业级开发(2)-搭建Angular开发环境
    Angular企业级开发(1)-AngularJS简介
    复习下C 链表操作(双向链表)
    复习下C 链表操作(单向循环链表、查找循环节点)
    复习下C 链表操作(单向链表)
    隐藏状态栏
    关于CALayer 中的contents(图片) 拉伸
  • 原文地址:https://www.cnblogs.com/itxm/p/16344189.html
Copyright © 2020-2023  润新知