Redis持久化之RDB

Redis持久化之RDB

RDB (快照)持久化:保存某个时间点的全量数据快照。

在配置文件中进行配置

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes  # 当备份进程出错的时候就停止主进程写入数据

rdbcompression yes    # RDB备份文件是否开启压缩,建议为no,redis本身就是CPU密集型进程

以save 900 1为例,意思是在900s内,出现1一条数据变动就进行一次RDB备份。


Redis的持久化方式

➢ SAVE :阻塞Redis的服务器进程,直到RDB文件被创建完毕
➢ BGSAVE : Fork出一-个子进程来创建RDB文件,不阻塞服务器进程

自动化触发RDB持久化的方式

  • 根据redis.conf配置里的SAVE m n定时触发(用的是BGSAVE )
  • 主从复制时BGSAVE,主节点自动触发
  • 执行Debug Reload
  • 执行SHUTDOWN的时候没有开启AOF持久化

BGSAVE原理

BGSAVE原理

系统调用fork() :创建进程,实现了Copy-on-Write

Copy-on-Write
如果有多个调用者同时要求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变


使用RDB持久化的缺点

  • 内存数据的全量同步, 数据量大会由于I/O而严重影响性能
  • 可能会因为Redis挂掉而丢失从当前至最近一-次快照期间的数据
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only Fil...
    lirensoso阅读 124评论 0 0
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,623评论 0 2
  • Redis 相对于其他NoSQL 内存数据库而言,除了更富的数据结构和速度快之外,Redis 的丰富的持久化方案也...
    邹志全阅读 242评论 0 2
  • 一、Redis持久化概述 持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永...
    心似南风阅读 956评论 0 1
  • 企业级redis集群架构的特点 海量数据 高并发 高可用 要达到高可用,持久化是不可减少的,持久化主要是做灾难恢复...
    lucode阅读 2,228评论 0 7