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

    Redis持久化

    大白话定义

      时间间隔内将内存中的数据写入磁盘

    Snapshot快照

      它恢复时候是将快照文件直接读到内存中

    fork

      简单的说就是备份(复制一个与当前进程一样的进程)Redis本身是单进程单线程底层用的epoll模型,所以快

    两种模式

    RDB Redis DataBase

    优势:

      适合大规模的数据恢复

      对数据完整性和一致性要求不高

    缺点:

      最后一次持久化后的数据可能会丢失

      还有就是fork备份一份,要考虑内存空间

    RDB保存文件是保存在dump.rdb文件中 这些都可以在配置文件修改但是业界都是用的这个文件名字

    动态停止RDB:  

    1 redis-cli config set save ""  当然最好还是备份一份

    需求:比如现在设置的是2分钟修改10次就触发RDB模式但是我又不想等它两分钟,写了马上存的话

    1 save 只管保存 全部阻塞
    2 bgsave 后台异步进行快照保存

    如果在此时执行flushall命令,dump.rdb文件为空,无意义

    恢复数据:

      把dump.rdb移动到redis安装目录并启动就能恢复(最好不要在宿主机上操作这些,在备份机上搞这些操作)

    异常修复启动

    redis-check-dump --fix dump.rdb

    出厂默认设置  

      1分钟内改了1万次
      5分钟改了10次
      15分钟内改了1次

    AOF Append Only File

    机制

      以日志的形式来记录每个写操作,写操作指令全部记录下来

      如果AOF与RDB共存的时候优先读取appendonly.aof,如果appendonly.aof有错误的写命令被保存进去,redis再从新启动就启动不了,但是可以通过redis-check-aof --fix appendonly.aof命令启动 自动就会把里边的错误命令删除再启动

    Rewirte

      文件追加方式,文件会越来越大,为了避免这种情况,新增重写机制

    重写原理

      简单的说又要fork

    触发重写机制

      默认是aof文件大小是上次rewirte后大小的一倍且文件大于64M时候就触发

    优势:

      每秒同步 每秒修改不同步

    劣势:

      aof文件大小远大于rdb,恢复没得rdb快

      运行效率慢与rdb,大量的io操作,占内存,逐条文件中执行命令

    常用的两个命令进程信息:

      lsof -i :6379
      ps -ef|grep redis

  • 相关阅读:
    行测(爆发篇)之图形推理
    行测(爆发篇)之资料分析
    申论(准备篇)之申论思维
    行测(基础篇)之基础常识复习建议
    行测(基础篇)之汉语语法与阅读习惯梳理
    行测笔记整理
    申论之日积月累
    申论(准备篇)之大纲的五个隐藏秘密
    行测(基础篇)之中学知识回顾
    申论(准备篇)之找好方向
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11456042.html
Copyright © 2011-2022 走看看