【redis】RBD-内存快照

专题四-RBD-内存快照

类似与照片,记录内存中数据在某一时刻的状态。

对哪些数据做快照?

全量快照(为了保证数据的可靠性)

生成RDB文件的两个命令:

save:在主线程中执行,会导致阻塞

bgsave:创建一个子线程,专门用于写入RDB文件,避免主线程的阻塞(默认配置)

做快照时,数据还能被增删改吗?redis是否被阻塞。

redis借助操作系统提供的写时复制技术(Copy-On-Write,COW),在执行快照的同时,正常处理写操作。

如果主线程要修改一块数据,这块数据就会被复制一份,生成该数据的副本。然后bgsave子进程把这个副本数据写入RDB文件。

多久做一次快照?

快照间隔越小,数据保存越完整,但是会有这俩个方面的问题:

  1. 频繁写入磁盘,会给磁盘很大压力
  2. bgsave子进程通过fork操作从主进程创建出来,fork这个过程会阻塞主线程。

为了解决这个问题,可以使用增量快照,只需要记住哪些数据被修改了

Redis4.0的内存记录

混合使用AOF日志和内存快照的方法,在两次快照之间,使用AOF日志记录这期间所有的命令操作

你可能感兴趣的:(redis,redis,数据库,java)