FWQ
聊聊Redis的持久化、RDB快照和AOF日志(图文详解)
聊聊Redis的持久化、RDB快照和AOF日志(图文详解) 0浏览 收藏 golang学习网今天将给大家带来《聊聊Redis的持久化、RDB快照和AOF日志(图文详解)》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到Redis、数据库等等知识点,如果你是正在学习数据库或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家! 今天分享一下Redis的持久化、事务、管道相关的知识点,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦。 Redis是一个键值对数据库,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,我们将是服务器中的非空数据库以及它们的键值对统称为数据库状态。 Redis是内存数据库,它将数据存储在内存中,如果不能将内存中的数据持久化到磁盘中,Redis突然宕机,会导致数据丢失。 为了解决这个问题,Redis提供了RDB持久化功能,RDB持久化会将Redis在内存中的数据库状态保存到磁盘中,避免数据意外丢失。 一、RDB持久化 RDB,英文全称Redis DataBase,在指定的时间间隔,将内存中的数据写入磁盘,待恢复时再将磁盘中的数据写入内存。 1、自动触发 redis.conf配置文件中,save 2、手动触发 通过save和bgsave手动触发RDB备份。 (1)save,在主程序中执行会阻塞当前Redis服务器,直到RDB持久化完成,也就是说save持久化期间,Redis就不能用了,禁止使用。 (2)bgsave,不阻塞当前Redis服务器,Redis会fork一个子进程,异步进行快照操作。 禁用快照:redis-cli config set save “”。 3、设置保存条件 服务器程序会根据save选项所设置的保存条件,设置服务器状态redisServer结构的saveparams属性。 dirty计数器记录距离上次成功执行save命令后,服务器对数据状态进行了多少次修改。 lastsave属性是一个UNIX时间戳,记录了服务器上一次成功执行save命令的时间。 属性是一个数组,数组中的每个元素都是一个saveparam结构,每个saveparam结构都保存了一个save选项设置的保存条件。 以上就是Redis服务器根据save选项所设置的保存条件,自动执行bgsave命令,进行间隔性数据保存的实现原理。…