Redis基础配置之RDB持久化

测试环境:

windows

RDB的触发机制

save   bgsave   flushall      自动触发(配置文件配置)

save命令触发:

触发方式 :首先手动删除dump.rdb文件。

 当执行save命令时,自动生成dump.rdb文建测试成功

bgsave命令触发:

触发方式:手动删除dump.rdb文件

 当执行bgsave命令时,自动生成dump.rdb文建测试成功

操作分析:执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程是Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。bgsave命令也是Redis内部RDB操作的默认方式

flushall命令触发

触发方式:手动删除dump.rdb文件,然后使flushall命令触发。

 当执行flushall命令时,自动生成dump.rdb文建测试成功

 save和bgsave

方式 save指令 bgsave指令
读写 同步 异步
阻塞客户端指令
额外内存消耗
启动新进程

恢复rdb文件

首先删除dump,rdb文件

 删除key

 恢复dump.rdb中的数据

windows环境下直接启动redis-server.exe即可(linux环境要放到bin目录下),测试成功

RDB持久化的优缺点

缺点:

服务器宕机时最后一次修改的数据会丢失

持久化时会fork一个子进程,会占用一定的内存空间

优点:

适合大规模的数据恢复!
对数据的完整性要求不高!

RDB持久化总结:

RDB是redis默认的持久化方式。

RDB持久化触发方式有save(不常用) 、bgsave、 flushall、配置文件配置的save [time] [operationChange](测试未生效) 。

RDB持久化过程

    指在指定的时间间隔内将redis内存中的数据集快照写入磁盘,实现原理是redis服务在指定的时间间隔内先fork一个子进程,由子进程将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储,生成dump.rdb文件存放在磁盘中。

猜你喜欢

转载自blog.csdn.net/qq_38423256/article/details/128695205