Redis教程

redis数据备份

本文主要是介绍redis数据备份,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Redis数据备份

  • redis数据备份恢复分类
  • 1 RDB备份
    • 1.1 什么是RDB
    • 1.2 RDB触发机制
      • 1.2.1 RDB 2种触发机制
      • 1.2.2 save和bgsave区别
    • 1.3 RDB优点
    • 1.4 RDB缺点
    • 1.5 应用场景
  • 2 AOF备份
    • 2.1 什么是AOF
    • 2.2 日志写入时机
    • 2.3 写会时机
    • 2.4 AOF重写
  • 3 混合备份

redis数据备份恢复分类

在这里插入图片描述

1 RDB备份

1.1 什么是RDB

RDB是redis某一刻在内存中数据的快照。所谓的快照,就是记录在某一时刻的数据状态的文件

1.2 RDB触发机制

1.2.1 RDB 2种触发机制

  1. 定时触发redis.conf中配置save/bgsave
    表示多少秒触发一次,changes表示

    save 900 1
    save 300 10
    save 60 3600
    

    “save 900 1”表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件;
    “save 300 10”表示如果每300秒内至少10个key发生变化(新增、修改和删除),则重写rdb文件;
    “save 60 3600”表示如果每60秒内至少10000个key发生变化(新增、修改和删除),则重写rdb文件

  2. 命令触发
    redis-cli: save / bgsave /flushall /shutdown

1.2.2 save和bgsave区别

 save:redis主进程进行数据备份操作,其他数据操作将被阻塞;
 bgsave:redis使用fork()函数启动子线程进行数据备份,redis主线程仍然可以处理key值得增加/删除/查询/修改操作;当redis主线程key发生增加/删除/修改操作时,会触发**写时复制**,这时主线程会将变化的数据复制一份给子进程进行备份。

1.3 RDB优点

1、数据恢复速度快
2、数据采用二进制和数据压缩方式写文件,文件体积小

1.4 RDB缺点

1、2次备份文件直接宕机,数据丢失量大
2、备份时占用cpu,服务器性能下降

1.5 应用场景

1、redis主从备份
2、数据完整性要求不高的业务

2 AOF备份

2.1 什么是AOF

AOF是记录从日志创建以来redis内存种所有key值增加/删除/修改命令的文件

2.2 日志写入时机

  1. 写前复制:在redis命令改变内存数据前就写日志
    缺点:需要检查命令语法的合法性
  2. 写后复制:在redis命令改变内存数据后写日志
    缺点:redis命令修改数据后宕机,数据将丢失
    AOF是在主线程中进行,磁盘I/O过大,会阻塞下一个指令的执行

2.3 写会时机

  1. always:同步写回磁盘,数据完全性高,性能低
  2. everysec:每秒写回磁盘,兼顾数据完整性和性能
  3. no: 由系统决定写回磁盘时机,数据完整性低

2.4 AOF重写

  1. 随着时间的增加,写入的命令越来越多,文件过于庞大
  2. 触发redis.conf文件中配置,启动aof重新
  3. redis启动bgrewriteaof进程,根据当前的redis内存数据重新写一份aof文件,在写aof的同时,主线程的修改命令写到aof缓存区,最后写入aof文件。

3 混合备份

在RDB备份时间间隔内,启动aof数据备份redis数据改变指令

这篇关于redis数据备份的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!