Closed xiangzilv123 closed 5 years ago
不确定是不是所有版本的redis都这样,我用redis 5.0.3测试的时候,进行psync同步时,有时CONTINUE回复后面带有多余的"\n"(不确定FULLRESYNC会不会这样,反正我测试的时候没有),这个\n导致offset计算跟redis计算不一致(在INFO命令的输出中可以看到)
需要说明的是,我在使用库的时候,做了比较多的自定义(用继承访问protected字段),所以这也有可能是我自己使用不当造成的。如果你知道"\n"跟offset直间的干扰关系,并且现有代码已经对此进行了处理,也请告知具体代码位置,我会检查是自己哪里搞错了。目前为了绕过这个问题,我使用了反射调整RedisInputStream内部结构,跳过多余的"\n",但这也不是什么好的做法,另外我也不确定自己对redis的offset计算的理解是正确的,有可能引入了新的问题,所以觉得还是向你请教一下比较好
Fixed at 3.1.0 and 2.6.2
不确定是不是所有版本的redis都这样,我用redis 5.0.3测试的时候,进行psync同步时,有时CONTINUE回复后面带有多余的"\n"(不确定FULLRESYNC会不会这样,反正我测试的时候没有),这个\n导致offset计算跟redis计算不一致(在INFO命令的输出中可以看到)
需要说明的是,我在使用库的时候,做了比较多的自定义(用继承访问protected字段),所以这也有可能是我自己使用不当造成的。如果你知道"\n"跟offset直间的干扰关系,并且现有代码已经对此进行了处理,也请告知具体代码位置,我会检查是自己哪里搞错了。目前为了绕过这个问题,我使用了反射调整RedisInputStream内部结构,跳过多余的"\n",但这也不是什么好的做法,另外我也不确定自己对redis的offset计算的理解是正确的,有可能引入了新的问题,所以觉得还是向你请教一下比较好