redis - 如何知道redis中的同步过程是否已经完成?

标签 redis synchronization

似乎redis服务器之间同步数据的唯一方法就是使用命令slaveof,但是如何知道数据是否已经复制成功呢?我的意思是,我希望在同步完成后立即收到通知

看了一些redis的资源代码,主要是replication.c,没找到官方的。目前我知道的唯一方法是使用 redis 命令 info,并通过轮询检查特定标志,这看起来很糟糕。

有没有更好的方法来做到这一点?

最佳答案

您正在尝试的方式,即 slaveof,是在 Redis master 和 Redis slave 之间同步数据。每当有数据写入master,就会同步到slave。因此,从技术上讲,同步永远不会完成

如果您想要的是当前数据集的快照,可以使用BGSAVE 命令将数据集保存到RDB 文件中。使用 LASTSAVE 命令,您可以检查 BGSAVE 是否已完成。然后将文件拷贝到另一台主机,用Redis加载。

关于redis - 如何知道redis中的同步过程是否已经完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44176943/

相关文章:

ubuntu - 创建服务器 TCP 监听套接字 * :6379: bind: Address already in use

java - 同步块(synchronized block)

algorithm - 事件的时间顺序以及事件的运行评论*提前*

ftp - JetBrains PhpStorm - 与 FTP 服务器同步

java - 在Java中创建同步静态单例Map

java - 在三个不同线程中同步三个步骤?

nosql - 如何浏览/查看存储在 Redis 中的值

python - redis 使用 hget 命令存储 json 数据。同时获取强制获取所有 json 数据代替单个 json 变量

node.js - 在我的异步等待函数中捕获 Uncaught Error

javascript - Node : Can you use plain Javascript objects as an in-memory datastore?