Redis基础配置之RDB持久化
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
测试环境
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文件存放在磁盘中。