Redis实现持久化的方式汇总

 更新时间:2022年10月13日 08:33:02   作者:Lincee  
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。今天我们就来看看如何实现Redis持久化,需要的朋友可以参考下

Redis有3种实现持久化的方式:AOF日志、RDB快照、混合持久化

Redis写入AOF日志的过程

Redis执行完写操作命令后,将命令追加到server.aof_buf缓冲区
通过write()系统调用,将aof_buf缓冲区的数据写入到AOF文件
数据被拷贝到了内核缓冲区page cache
由内核决定何时将数据写入硬盘

Redis实现RDB快照

生成 RDB 文件的两个命令:save 和 bgsave

执行save命令会在主线程生成RDB文件,执行bgsave命令会创建一个子进程来生成RDB文件

执行bgsave命令时,会通过fork()创建子进程,子进程和父进程共享同一片内存数据。因为创建子进程的时候,子进程复制父进程的页表,但页表指向的物理内存还是一个。如果主线程执行读操作,则主线程和 bgsave 进程互不影响;如果主线程执行写操作,则被修改的数据会复制一份副本,然后 bgsave 子进程会把该副本数据写入 RDB 文件,在这个过程中,主线程仍然可以直接修改原来的数据

混合持久化

在AOF日志重写过程,当开启了混合持久化时,在AOF重写日志时,fork出来的重写子进程会先将与主线程共享的内存数据以RDB方式写到AOF文件,然后主线程处理的操作命令会被记录在重写缓冲区,重写缓冲区里的增量命令会以AOF方式写入到AOF文件,写入完成后通知主进程将含有的RDB格式和AOF格式的AOF文件替换旧版。

到此这篇关于Redis实现持久化的方式汇总的文章就介绍到这了,更多相关Redis实现持久化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis官方ORM框架比RedisTemplate更优雅

    Redis官方ORM框架比RedisTemplate更优雅

    这篇文章主要为大家介绍了Redis官方ORM框架比RedisTemplate更优雅的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Redis开启键空间通知实现超时通知的步骤详解

    Redis开启键空间通知实现超时通知的步骤详解

    这篇文章主要介绍了Redis开启键空间通知实现超时通知的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 关于Redis未授权访问的问题

    关于Redis未授权访问的问题

    这篇文章主要介绍了Redis未授权访问的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Redis键迁移(move、dump、restore、migrate)的三种实现

    Redis键迁移(move、dump、restore、migrate)的三种实现

    键迁移就是把数据由一个Redis迁移到另一个Redis,本文主要介绍了Redis键迁移(move、dump、restore、migrate)的三种实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • 如何使用redis的setnx实现分布式锁

    如何使用redis的setnx实现分布式锁

    Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值,这篇文章主要介绍了使用redis的setnx实现分布式锁,需要的朋友可以参考下
    2024-06-06
  • Redis基本数据类型Set常用操作命令

    Redis基本数据类型Set常用操作命令

    这篇文章主要为大家介绍了Redis基本数据类型Set常用操作命令,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用redis如何生成自增序列号码

    使用redis如何生成自增序列号码

    这篇文章主要介绍了使用redis如何生成自增序列号码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Redis消息队列的三种实现方式

    Redis消息队列的三种实现方式

    本文主要介绍了Redis消息队列的三种实现方式,主要包括List实现消息队列,PubSub消息队列,Stream消息队列,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 分布式锁三种实现方式及对比

    分布式锁三种实现方式及对比

    这篇文章主要介绍了分布式锁三种实现方式及对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • redis过期监听机制方式

    redis过期监听机制方式

    这篇文章主要介绍了redis过期监听机制方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论