>  기사  >  백엔드 개발  >  go-redis v8 XAutoClaim은 Redis 서버 v7+와 호환되지 않습니다.

go-redis v8 XAutoClaim은 Redis 서버 v7+와 호환되지 않습니다.

王林
王林앞으로
2024-02-09 16:54:08853검색

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

PHP 편집자 Zimo는 중요한 문제를 소개하기 위해 왔습니다. 즉, 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.

위 내용은 go-redis v8 XAutoClaim은 Redis 서버 v7+와 호환되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제