美文网首页
[转]redis持久化和常见故障

[转]redis持久化和常见故障

作者: 西葫芦炒胖子 | 来源:发表于2018-10-18 10:53 被阅读0次

    Redis主从复制的原理

    当建立主从关系时,slave配置slaveof <master_host> <master_port> 。slave服务器会向主服务器发送一个sync命令。master接受并fork一个进程来执行BGSAVE命令。该命令生成一个RDB文件并且全量发送给slave服务器,slave服务器接收并载入RDB文件,同时,主服务器将缓冲区的命令以增量的方式发送给从服务器,最终使从服务器的数据状态和主服务器保持一致。

    RDB的工作原理

    当redis生成dump.rdb文件时,工作过程如下

    redis主进程fork一个子进程

    fork出来的子进程将内存的数据集dump到临时的RDB中

    当子进程对临时的RDB文件写入完毕,redis用新的RDB文件代替旧的RDB文件

    AOF的工作原理

    AOF :append only file。每当Redis执行一个改变数据集的命令时,这个命令都会被追加到AOF文件的末尾。当redis重新启动时,程序可以通过AOF文件恢复数据

    持久化文件监控

    Redis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,只需要执行下面一条命令,就能获得 Redis 系统的状态报告。

    redis-cli info

    RDB文件状态监控

    其中跟RDB文件状态监控相关的参数

    rdb_changes_since_last_save 表明上次RDB保存以后改变的key次数

    rdb_bgsave_in_progress 表示当前是否在进行bgsave操作。是为1

    rdb_last_save_time 上次保存RDB文件的时间戳

    rdb_last_bgsave_time_sec 上次保存的耗时

    rdb_last_bgsave_status 上次保存的状态

    rdb_current_bgsave_time_sec 目前保存RDB文件已花费的时间

    AOF文件状态监控

    其中跟AOF文件状态监控相关的参数

    aof_enabled AOF文件是否启用

    aof_rewrite_in_progress 表示当前是否在进行写入AOF文件操作

    aof_rewrite_scheduled

    aof_last_rewrite_time_sec 上次写入的时间戳

    aof_current_rewrite_time_sec:-1

    aof_last_bgrewrite_status:ok 上次写入状态

    aof_last_write_status:ok 上次写入状态

    相关文章

      网友评论

          本文标题:[转]redis持久化和常见故障

          本文链接:https://www.haomeiwen.com/subject/ijdjzftx.html