💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 持续学习,不断总结,共同进步,活到老学到老
- 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
- 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
- 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
3.BGSAVE 默认配置
那么只要满足以下三个条件中的任意一个,BGSAVE 命令就会被执行:
-
服务器在 900 秒之内,对数据库进行了至少 1 次修改。
-
服务器在 300 秒之内,对数据库进行了至少 10 次修改。
-
服务器在 60 秒之内,对数据库进行了至少 10000 次修改。
对应的配置文件信息在 saveparams 数组中
#900秒内如果超过1个key被修改,则发起快照保存
save 900 1
#300秒内容如超过10个key被修改,则发起快照保存
save 300 10
#60 秒之内,对数据库进行了至少 10000 次修改
save 60 10000
struct redisServer {
// ...
struct saveparam *saveparams;//记录了save保存条件的数组
// ...
};
struct saveparam {
time_t seconds;//秒数
int changes;//修改数
};
4.dirty 和 lastsave
dirty 计数器和 lastsave 属性:
除了 saveparams 数组之外,服务器状态还维持着一个 dirty 计数器
,以及一个 lastsave 属性
:
dirty
计数器记录距离上一次成功执行SAVE
命令或者BGSAVE
命令之后,服务器对数据库状态(服务器中的所有数据库)进行了多少次修改(包括写入、删除、更新等操作)。lastsave
属性是一个 UNIX 时间戳,记录了服务器上一次成功执行SAVE
命令或者BGSAVE
命令的时间。
struct redisServer {
// ...
long long dirty;//修改计数器
time_t lastsave;//上一次执行保存的时间
// ...
};
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙