Advertisement

文章带你了解Redis的持久化方法

阅读量:

前言

Redis作为一种具备持久化功能的内存型数据库,能够将存储于内存中的数据同步至硬盘,从而实现数据的长期保存。当系统重启时,可通过读取硬盘中的文件将数据重新载入内存,以此完成数据的恢复操作。该数据库系统提供了两种实现持久化的途径:RDB与AOF

RDB:

作为Redis系统中预设的存储机制,该方式依据设定的时间间隔策略,将内存中的数据以二进制格式保存为RDB文件。生成RDB文件可通过两个指令实现:saveBGsave
当执行save指令时,Redis服务进程将被暂停,期间无法响应任何其他请求。而BGsave则有所不同,在执行过程中会创建一个子进程,由该子进程负责生成RDB文件,与此同时父进程仍可继续处理其他客户端的请求。

运行状态说明:在BGSAVE 指令执行阶段,若客户端尝试发送SAVE指令,该请求将被服务器拒绝。服务器禁止同时执行SAVE与BGSAVE命令的原因在于,此举可避免父进程与子进程同时调用rdbSave函数引发潜在的竞争条件问题。
此外,在BGSAVE运行期间,若再次接收到BGSAVE命令也将被拒绝,因为并发执行两个BGSAVE操作同样可能导致竞争条件的出现。最后,在BGREWRITEAOF与BGSAVE这两个命令之间也存在互斥关系:
❑ 若当前正在执行BGSAVE命令,则

全部评论 (0)

还没有任何评论哟~