卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34910本站已运行393

go-redis v8 XAutoClaim 与 Redis 服务器 v7+ 不兼容

go-redis v8 xautoclaim 与 redis 服务器 v7+ 不兼容

php小编子墨在这里向大家介绍一个重要的问题,即go-redis v8的XAutoClaim功能与Redis服务器v7+不兼容的情况。据了解,go-redis是一个流行的Golang Redis客户端库,而XAutoClaim是其最新版本中新增的一个功能,可以用于在Redis队列中自动分配任务。然而,使用这个功能时,发现它与Redis服务器v7+不兼容,导致无法正常工作。这个问题可能会给使用go-redis的开发者带来一些困扰,因此我们需要找到解决方案来解决这个兼容性问题。

问题内容

问题

我正在对 redis v7 服务器实例使用 go-redis v8。据我所知, XAutoClaim 命令不兼容。 client.XAutoClaim 返回错误:got 3,想要 2

XAutoClaim 上的官方 go-redis/v8 文档没有提及与 redis 版本 7+ 的不兼容性。

重现步骤

ctx := context.Background()

        streamName := "test-stream"
        groupName := "test-group"

        rdb := redis.NewClient(&redis.Options{
            Addr:     "localhost:6379",
            Password: "", // no password set
            DB:       0,  // use default DB
        })
        defer rdb.FlushDB(ctx).Err()

        // Add message to stream
        rdb.XAdd(ctx, &redis.XAddArgs{
            Stream: streamName,
            Values: map[string]interface{}{"key": "value"},
        })

        // Create consumer group
        rdb.XGroupCreateMkStream(ctx, streamName, groupName, "0")

        autoclaimError := rdb.XAutoClaim(ctx, &redis.XAutoClaimArgs{
            Stream:       streamName,
            Group:        groupName,
            Consumer:     "test-consumer",
            MinIdle:      0,
            Start:        "-",
            Count:        1,
        }).Err()
        print(autoclaimError.Error())

解决方法

go-redis v8 XAutoClaim 与 Redis 版本 7+ 不兼容。虽然这个问题没有正式记录,但这里有一个关于此事的问题:https:// /github.com/redis/go-redis/issues/2106。

卓越飞翔博客
上一篇: Streamlit 中的 Altair 绘图:如何添加图例?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏