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

王林
Freigeben: 2024-02-09 16:54:08
nach vorne
929 Leute haben es durchsucht

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())
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage