生产中从redis获取热快照的有效方法?

wb1gzix0  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(408)

我们有一个redis集群,它拥有超过200万个密钥,这些密钥的更新时间间隔为1分钟。现在我们需要在特定的时间间隔内拍摄redis db的快照,例如每10分钟一次。此快照不应暂停redis命令的执行。是否有任何异步方式从redis获取快照?
如果我们能得到任何关于开源工具或框架的建议,那将非常有帮助。

bt1cpqcv

bt1cpqcv1#

redis bgsave是异步的,它会获取快照。
它调用操作系统的fork()函数。根据redis手册,
如果数据集很大,fork()可能会很耗时,如果数据集很大,cpu性能不好,可能会导致redis在几毫秒甚至一秒钟内停止为客户端提供服务
一分钟内更新200万次,即30k+qps。所以你真的必须尝试一下,运行与你的业务相似的基准测试,然后发布bgsave,监视你系统的i/o和cpu使用情况,看看你的redis调用延迟是否有峰值。
然后发出lastsave,它将告诉您上一次成功快照发生的时间。所以你可以调整你的备份时间表。

相关问题