zoukankan      html  css  js  c++  java
  • redis数据持久化_redis

    一、redis运行

      redis运行时单线程模式运行

      原因:

      (1)内存处理速度极快,纳秒级别

      (2)非阻塞IO,IO多路复用基于事件完成读写

      (3)避免线程切换与资源竞争

      所以:

      一次执行运行一条命令

      谨慎使用慢命令:

      --keys/flushall/flushdb/exec/save/bgsave/...

    二、数据持久化

      为防止由于系统宕机导致内存数据丢失,需要定时进行数据持久化,写入到硬盘中。

      两种方式:

        快照(RDB),保存当前状态

        写日志(AOF),操作流水账,需要恢复时将所有操作执行一遍

    (1)RDB

      原理:创建二进制rdb文件,第二次会进行覆盖,只有一个文件;在启动redis的时候会加载rdb文件

      触发RDB的两种方式:

        手动保存、自动保存

      ①手动保存

        建议在系统不忙的时候进行

        save(会阻塞,一个亿的数据会执行三分钟,因为redis是单线程模式)

        bgsave (非阻塞,在后台执行,在后台开启子进程进行保存,还是三分钟)

        很明显bgsave方式比较适合线上的维护操作

      ②配置文件定时自动保存redis.conf

      

     (2) AOF日志追加(AppendOnly File)

       原理:保存操作的流水账,在宕机重启时,将AOF日志重新加载执行,对数据盘压力小

      ①  追加策略

        

        

       ② 重写压缩

        就是将对相同key进行设置的日志,只保存最后的结果操作

        

       ③AOF实现方式

        手动执行AOF保存:

          >bgrewriteaof

        自动执行AOF保存:

          配置redis.conf文件,配置开启AOF,记录日志的策略,重写日志策略

        

    (3)两种持久化方式的选择

       

      

      

  • 相关阅读:
    Spark记录-SparkSQL远程操作MySQL和ORACLE
    Spark记录-Spark on Yarn框架
    Linux记录-重启后磁盘丢失问题解决方案
    Spark记录-阿里巴巴开源工具DataX数据同步工具使用
    Spark记录-SparkSql官方文档中文翻译(部分转载)
    Spark记录-SparkSQL一些操作
    Spark记录-Spark-Shell客户端操作读取Hive数据
    Spark记录-SparkSQL相关学习
    Spark记录-Scala程序例子(函数/List/match/option/泛型/隐式转换)
    CM记录-升级Spark版本到2.x(转载)
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/13713506.html
Copyright © 2011-2022 走看看