Heim >Backend-Entwicklung >Golang >go-redis v8 XAutoClaim ist nicht mit Redis-Server v7+ kompatibel

go-redis v8 XAutoClaim ist nicht mit Redis-Server v7+ kompatibel

王林
王林nach vorne
2024-02-09 16:54:08914Durchsuche

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

Der PHP-Editor Zimo ist hier, um Ihnen ein wichtiges Problem vorzustellen: Die XAutoClaim-Funktion von go-redis v8 ist nicht mit dem Redis-Server v7+ kompatibel. Es versteht sich, dass go-redis eine beliebte Golang Redis-Clientbibliothek ist und XAutoClaim eine neue Funktion in der neuesten Version ist, mit der Aufgaben automatisch in der Redis-Warteschlange zugewiesen werden können. Bei Verwendung dieser Funktion wurde jedoch festgestellt, dass sie nicht mit dem Redis-Server v7+ kompatibel war, was dazu führte, dass sie nicht ordnungsgemäß funktionierte. Dieses Problem kann Entwicklern, die go-redis verwenden, einige Probleme bereiten, daher müssen wir eine Lösung finden, um dieses Kompatibilitätsproblem zu lösen.

Frageninhalt

Frage

Ich verwende go-redis v8 mit einer Redis v7-Serverinstanz. Soweit ich weiß, ist der Befehl XAutoClaim nicht kompatibel. client.XAutoClaim 返回错误:got 3,想要 2.

Die offizielle go-redis/v8-Dokumentation zu XAutoClaim erwähnt keine Inkompatibilität mit Redis Version 7+.

Schritte zur Reproduktion

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())

Workaround

go-redis v8 XAutoClaim ist nicht kompatibel mit Redis Version 7+. Obwohl dieses Problem nicht offiziell dokumentiert ist, gibt es hier ein Problem dazu: https:///github.com/redis/go-redis/issues/2106.

Das obige ist der detaillierte Inhalt vongo-redis v8 XAutoClaim ist nicht mit Redis-Server v7+ kompatibel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen