Skip to content

stream 类型某种情况下会解析失败 #27

@zenxme

Description

@zenxme

复现流程:

  1. 启动一个 redis 实例:docker run -it --rm --name redistest -v $PWD/tempdata/:/data/ -p 6379:6379 redis:7.0 redis-server --save 10 1
  2. 运行下面go程序 写入数据:
package main

import (
	"context"
	"fmt"

	redis "github.com/redis/go-redis/v9"
)

func main() {
	c := redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
		DB:   0,
	})

	n := 9999
	for i := 0; i < n*2; i++ {
		err := c.XAdd(context.Background(), &redis.XAddArgs{
			Stream: "mytest",
			Values: []string{"info", `abcd`},
			MaxLen: int64(n),
			Approx: true,
		}).Err()
		if err != nil {
			panic(err)
		}
		fmt.Println(i)
	}
}
  1. 进入上面的 tempdata 目录开始分析,rdb -c memory -o memory.csv dump.rdb,有报错
error: read stream item id seq failed: -1 is not a uint

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions