ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Linux持久化之RDB操作【redis】

2021-12-05 21:02:22  阅读:141  来源: 互联网

标签:dump Redis Linux redis RDB rdb save


Redis

Redis持久化( 面试和工作持久化都是重点)!!!

Redis是内存数据库,如果不将内存中的数据库 状态保存到磁盘,那么一旦服务器进程退出,服务器的数据库状态也会消失
所以Redis提供了持久化操作

什么是RDB

在这里插入图片描述

在指定时间间隔后,将内存中的数据集快照写入磁盘 ;也就是行话说到Snapshot快照,它恢复时候直接读取快照文件到内存,进行数据的恢复 ;Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束,再用这个临时文件替换上次持久化好的文件,整个过程主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常铭感,那么RDB要比AOF方式更加高效,RDB的缺点是最后一次持久化的数据可能丢失,我们默认的就是RDB,一般情况不会修改这个配置!

默认情况下, Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。文件名可以在配置文件中进行自定义。(redis.config)
在这里插入图片描述

工作原理

在进行 RDB 的时候,redis 的主线程是不会做 io 操作的,主线程会 fork 一个子线程来完成该操作;
Redis 调用forks。同时拥有父进程和子进程。子进程将数据集写入到一个临时 RDB 文件中。当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。

这种工作方式使得 Redis 可以从写时复制(copy-on-write)机制中获益(因为是使用子进程进行写操作,而父进程依然可以接收来自客户端的请求。)

触发机制

save的规则满足的情况下,会自动触发rdb原则
执行flushall命令,也会触发我们的rdb原则
退出redis,也会自动产生rdb文件

测试

标签:dump,Redis,Linux,redis,RDB,rdb,save
来源: https://blog.csdn.net/qq_46489085/article/details/121729587

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有