Redis

Redis-第七章节-持久化

2021-02-06  本文已影响0人  蜗牛ICU

目录

1、概述

Redis 是内存数据库,如果不能将内存中的数据保存到磁盘中,那么一旦服务器进程退出,服务器的数据库数据也会消失,所以Redis提供了持久化的功能,redis分为两种持久化方式:RDBAOF。有以下几个特点:

2、RDB

1、概念

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

2、持久化机制-BGSAVE

image
通常,会立即返回ok,Redis进程会执行fork操作创建子进程,Redis在fork时,父进程会继续为客户端提供服务,子进程会将数据持久化到硬盘上,然后退出。如果已经在后台执行保存或者正在运行另一个非后台保存的进程,特别是正在进行AOF写入时,则会返回错误。如果使用了bgsave任务,而正在进行AOF写入时,该命令将立即返回ok,并计划在下一次机会运行后台保存。阻塞只会在fork阶段。
客户端可以使用lastsave命令检查操作是否成功。

3、持久化机制-SAVE


不会接受客户端执行的操作命令,等持久化工作完成之后,会将新的文件替换旧的文件。

4、持久化机制-自动触发

redis.conf中可以配置,让用户自定义save属性,让服务器每一段时间内执行一次bgsave操作。

  # 服务器在900秒内,对数据库进行了至少1次修改
  save 900 1
  
  # 服务器在300秒内,对数据库进行了至少10次修改
  save 300 10
  
  # 服务器在60秒内,对数据库进行了至少10000次修改
  save 60 10000
  
  # bgsave发生错误时是否停止写入,一般为yes
  stop-writes-on-bgsave-error yes
  
  # 持久化时是否使用LZF压缩字符串对象?
  rdbcompression yes
  
  # 是否对rdb文件进行校验和检验,通常为yes
  rdbchecksum yes
  
  # RDB持久化文件名
  dbfilename dump.rdb
  
  # 持久化文件存储目录
  dir ./

5、恢复数据机制

只需要将rdb文件放在我们redis启动目录就可以了,redis启动的时候会自动检查文件并恢复其中的数据。

6、优点

7、缺点

3、AOF

1、概念

以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就会根据日志文件的内容将写的指令从前到后执行一次以完成数据的恢复工作。

2、持久化原理


所有操作的命令会追加在文件中。

3、开启AOF持久化

   
   # 开启aof持久化方式,默认no
   appendonly no
   
   # aof 持久化生成的文件名称
   appendfilename "appendonly.aof"
   
   # 三种持久化机制
   # appendfsync always
   appendfsync everysec
   # appendfsync no

4、三种触发持久化机制

5、AOF文件损坏

如果 aof 文件被破坏,redis服务是启动不了的。redis本身提供了修复了工具。redis-check-aof --fix appendonly.aof

5、优点

6、缺点

4、如何选择持久化机制

开启两种持久化方式,根据自己的业务需求针对redis进行配置的调整。

上一篇 下一篇

猜你喜欢

热点阅读