您现在的位置是:网站首页> 编程资料编程资料
Redis实现持久化的方式汇总_Redis_
2023-05-27
545人已围观
简介 Redis实现持久化的方式汇总_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不同数据类型的命令语句详解_Redis_
- 小白也能看懂的Redis遍历键和数据库管理详解_Redis_
- spring boot集成redis基础入门实例详解_Redis_
- springboot整合使用云服务器上的Redis方法_Redis_
- redis批量操作pipeline管道操作方法_Redis_
- Redis 存储对象信息用 Hash 和String的区别_Redis_
- Linux、Windows下Redis的安装即Redis的基本使用详解_Redis_
- 生产redisson延时队列不消费问题排查解决_Redis_
- 一文搞懂阿里云服务器部署Redis并整合Spring Boot_Redis_
- Redis主从复制分步讲解使用_Redis_