ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

5.Redis持久化的取舍和选择

2020-01-14 11:52:09  阅读:297  来源: 互联网

标签:md font 持久 color Redis 取舍 0px margin size


 

<style></style>

持久化的作用

  • 什么是持久化

    • redis所有的数据保存在内存中,对数据的更新将异步地保存到磁盘上。
  • 持久化的实现方式

    • 快照

      • mysql dump
      • redis RDB
    • 写日志

      • Mysql Binlog
      • Hbase HLog
      • Redis AOF

RDB

  • 什么是RDB

    • 快照 备份 主从复制
  • 触发机制-主要三种方式

    • save 同步

      • 文件策略 如果存在老的RDB文件 新替换老
      • 复杂度 O(N)
      • 优点 不会消耗额外内存
      • 缺点 阻塞客户端命令
    • bgsave 异步 background fork 子进程

      • 文件策略和复制度和save相同
      • 优点 不阻塞客户端命令
      • 缺点 需要fork 消耗内存
    • 自动生成RDB bgsave

      • save 900 1
      • save 300 10
      • save 60 10000
      • dbfilename dump.rdb
      • dir ./
      • stop-writes-on-bgsave-error yes
      • rdbcompression yes 压缩格式
      • rdbchecksum yes 校验
    • 最佳配置

      • dbfilename dump-${prot}.rdb
      • dir /bigdiskpath
      • stop-writes-on-bgsave-error yes
      • rdbcompression yes 压缩格式
      • rdbchecksum yes 校验
  • 触发机制-不容忽视方式

    • 全量复制 主从复制 生成rdb
    • debug reload 生成rdb
    • shutdown 生成rdb
  • 实验

    • save阻塞
    • bgsave fork
    • 自动配置
    • rdb长什么样子 *总结
    • RDB是Redis内存到硬盘的快照,用于持久化
    • save通常会阻塞Redis
    • bgsave不会阻塞Redis 但是会fork新进程
    • save自动配置满足任意就会被执行
    • 有些触发机制不容忽视

AOF

  • RDB存在问题

    • 耗时 消耗性能

      • O(n)数据:耗时
      • fork 消耗内存 copy-on-write策略
      • Disk I/O I/O性能
    • 不可控 丢失数据

      时间戳save
      T1 执行多个写命令
      T2 满足RDB自动创建的条件
      T3 再次执行多个写命令
      T4 宕机 t3时间点的数据丢失
  • 什么是AOF

    • 日志记录所有命令
    • 完整恢复
  • AOF三种策略

    • always
    • everysec 默认配置
    • no 根据操作系统决定

RDB和AOF的抉择

命令alwayseverysecno
优点 不丢失数据 每秒一次fsync丢1秒数据 不用管
缺点 UI开销大,一般的sata盘只有几包TPS 丢失一秒数据 不可控

AOF重写

  • 原生AOF

    • set hell world
    • set hello java
    • set hello hehe
    • incr counter
    • incr counter
    • rpush mylist a
    • rpush mylist b
    • rpush mylist c
    • 过期数据
  • AOF重写

    • set hello hehe
    • set counter 2
    • rpush mylist a b c *AOF重写作用
    • 减少磁盘占用量
    • 加速恢复速度
  • AOF重写两种方式

    • bgrewriteaof命令 从内存中 fork -> aof重写 -> AOF文件

    • AOF重写配置

      配置名含义
      auto-aof-rewrite-min-size AOF文件重写需要的尺寸
      auto-aof-rewrite-precentage AOF文件增长率
    • 统计

      统计名含义
      aof_current_size AOF当前尺寸
      aof_base_size AOF上次启动或重写的尺寸
    • 自动触发机制 需要同时满足两者

      • aof_current_size > auto-aof-rewrite-min-size
      • (aof_current_size - aof_base_size)/aof_base_size > auto-aof-rewrite-precentage
    • AOF重写流程

  • 配置

    • appendonly yes
    • appendfilename “appendonly-${prot}.aof”
    • appendfsync everysec
    • dir /bigdiskpath
    • no-appendfsync-on-rewrite yes
    • auto-aof-rewrite-min-size 64mb
    • auto-aof-rewrite-precentage 100

Reddis 持久化的取舍与选择

  • RDB和AOF比较
命令RDBAOF
启动优先级
体积
恢复速度
数据安全性 丢数据 根据策略决定
轻重 重(全部数据cpu密集) 轻 追加操作
  • RDB最佳策略

    • “关”
    • 集中管理
    • 主从,从开?
  • AOF最佳策略

    • “开”:缓存和存储
    • AOF重写集中管理
  • 最佳策略

    • 小分片
    • 缓存或者存储
    • 监控(硬盘,内存,负载,网络)
    • 足够的内存

标签:md,font,持久,color,Redis,取舍,0px,margin,size
来源: https://www.cnblogs.com/richiewlq/p/12191261.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有