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

    redis中数据的持久化分为两种:1.rdb,2.aof

    1.rdb

      在指定的时间内将内存中的数据集快照写入磁盘,恢复时,直接将快照文件读取到内存中。

      rdb保存的是dump.rdb文件(默认)。

      在redis配置文件中可以设置保存的文件名称,以及每次更新文件的间隔时间

    如果在开发过程中遇到非常重要的数据想要立刻快照到文件中,则使用save命令(同步,其他先阻塞)或者bgsave命令(异步)即可

    2.aof

      以日志的形式来记录每个操作,将redis执行过的所有指令记录下来,aof默认保存的时候appendonly.aof文件,要开启aof则需要设置redis.conf配置文件中的appendonly 为yes

      如果aof文件有损坏,可以使用redis-check-aof --fix进行修复

      aof开启后,当redis重启时会优先执行aof文件来恢复数据

     AOF采用文件追加方式,文件会越来越大为避免出现此种情况,新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集.可以使用命令bgrewriteaof

    AOF文件持续增长而过大时,会fork出一条新进程来将文件重写(也是先写临时文件最后再rename),遍历新进程的内存中数据,每条记录有一条的Set语句。重写aof文件的操作,并没有读取旧的aof文件,而是将整个内存中的数据库内容用命令的方式重写了一个新的aof文件,这点和快照有点类似

    Redis会记录上次重写时的AOF大小,默认配置是当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发

  • 相关阅读:
    Git报错:remote: HTTP Basic: Access denied的解决方法
    扩展模块之ConfigParser模块
    pyftplib
    kafka
    Android MarqueeTextView : 轻松实现文本滚动(跑马灯)效果
    nx
    ScorpionX-RX-64
    SDWebImage源码解读
    iOS 性能优化及AFNetworking源码解析
    vue使用g6做流程图
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9817003.html
Copyright © 2011-2022 走看看