我正在编写一个工具来转储 redis 的 rdb 数据文件。我发送一个“同步”命令保存为从属。然后将 rdb 解析为键、值。但是,当直接从网络读取时,我无法解析 rdb。当我将网络数据写入文件并解析文件时,它运行良好。我不知道为什么。代码解析网络,文件完全相同。解析网络和解析文件之间有什么区别吗?
谢谢 !
--update--------------------------------
问题解决:
是我的错,我不熟悉网络编程。我以错误的方式使用了读取系统调用。
例如:
我想从网络读取 SIZE 字节,我写道:
nread = read(fd,buf,SIZE)
我假设 nread 等于 SIZE 。这适用于大多数时间读取文件,但在大多数时间读取网络流时不起作用。所以我在 redis replication.c 中使用了syncRead。
谢谢大家帮我解决问题!