zoukankan      html  css  js  c++  java
  • Redis怎么做持久化

    1.redis持久化的两种方式

    2.两种持久化方式区别

    3.两种持久化方式的使用场景

    1.Redis 是内存型数据库,一般来用作缓存。保存在内存的数据有一个特点, 就是断电消失,因此一旦 Redis 宕机了,重启以后保存在 Redis 里面的数据就会消失, 此时服务器在 Redis 里面获取不到缓存,就会让缓存无法命中,导致缓存雪崩,请求直接打到 MySQL 上最后让 MySQL 也宕机。 因此我们需要 Redis 持久化来做灾难恢复、数据恢复还有数据库高可用。

    2.Redis 有两种持久化方式,一种是 RDB、一种是 AOF。 RDB:就是对 Redis 中的数据进行周期性的持久化。类似于快照 AOF:就是对每一条写入、删除记录做日志,Redis 重启的时候,重启 AOF 日志重构数据集 如果同时使用两种,Redis 就会优先实现 AOF,因为数据更加完整

    RDB: 优点:保存多份完整备份,对 IO 影响小,适合做冷备,并且在宕机后恢复更加快 缺点:一般快照文件生成的间隙在 5min,一旦宕机,就会丢失 5min 的数据。同时如果快照文件过大,会让服务暂停几毫秒甚至一秒

    AOF: 优点:一般 1s 同步一次,最多丢失 1s 的数据。同步日志是使用 append-only 模式,写入快,并且日志文件不易破损,尾部破损也容易恢复。并且 AOF 文件大小不会影响性能。 缺点:AOF 日志一般比 RDB 文件大,同时以前 AOF出过 Bug导致数据没有完整的恢复。

    一般我们选择的话,不能单单使用 RBD 会丢失许多数据,也不能单单使用 AOF 恢复速度比较慢,也容易有 bug。推荐同时使用,AOF 保证数据不丢失,RBD 做冷备,一旦 AOF 丢失或者不可用的时候可以用于快速恢复。

  • 相关阅读:
    前台加请求头token,后台接收
    MD5加密工具类
    SpringBoot实现请求拦截(@Aspect切面类和自定义拦截器)
    Swagger2添加统一header-token
    idea + groovy + mybatis 自动生成 Dao、mappings 和 实体类
    JAVA算法编程题50题及答案
    Python 1基础语法一(注释、行与缩进、多行语句、空行和代码组)
    ENVI 安装
    Python之GUI编程(Tkinter))
    Python 0(安装及初步使用+学习资源推荐)
  • 原文地址:https://www.cnblogs.com/shihaoyu/p/11790701.html
Copyright © 2011-2022 走看看