王乃峥

Results 38 comments of 王乃峥
trafficstars

这个是协议解析错误,不应该的。

理论上不是,我怀疑是对 redis 在生成 rdb 过程中的协议理解上或者实现上存在问题。 在生成 RDB 过程中,server 会不停地回复 '\n',直到返回数据长度,再之后就是正常的 Bulkbytes Array 的指令了。但是你的报错上看到 `decodeSingleLineBulkBytesArray` ,就是说我开始按照 String 开始解析 Redis 指令,而不是 Bulkbytes Array,说明我在第三步收到的指令格式完全不对。我回去翻翻 Redis 代码再看一下,我怀疑这里面理解上有错误。或者 Bug。但是我很难复现,因为我没环境。

hmm,你确定是 `redis-4.x-cgo` 这个 branch 么? 我仔细翻了一下代码,`RDB_VERSION` 是直接从 redis 4.x 代码里面读的,确定支持 `RDB_VERSION=8` 的,这个错误不应该的。

而且最新的报错方式是,我觉得是应该是你使用的分支不对。 ![image](https://user-images.githubusercontent.com/722853/43055685-947411b2-8e6a-11e8-8cc5-f83bba20a839.png)

似乎不太对, v2.0-beta 就应该是 redis-4.x-cgo 这个 branch 的才对。

rdb 版本太高了,当初实现的时候 rdb 没这么高。你可以改改代码直接跳过这个检查试试看,如果没用到新的 feature 的话,可能问题不大? On Mon, Jun 22, 2020 at 11:53 一步 wrote: > after installed the latest release , exec redis-port decode --input=---- > , an error...

> 还有一种思路是更新 redis-port 所依赖的 redis 版本。本身是 cgo 实现的,更新 redis 版本重新编译就好了 还是别冒险了,Redis 升级 RDB 这件事动作有点大。

@jjeejj 在维护。不过一直也没有怎么出现 bug,我以为没有人在用了。

这个东西太陈旧了。为什么不试试最新的 release

而且,在 issue 里面搜 EOF,看 redis log, 能找到很多相似的回答,在 Codis 里面搜 EOF 和 redis-port 相关的。