Maison > développement back-end > Golang > go-redis v8 XAutoClaim n'est pas compatible avec le serveur Redis v7+

go-redis v8 XAutoClaim n'est pas compatible avec le serveur Redis v7+

王林
Libérer: 2024-02-09 16:54:08
avant
933 Les gens l'ont consulté

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

L'éditeur PHP Zimo est là pour vous présenter un problème important, à savoir que la fonction XAutoClaim de go-redis v8 est incompatible avec le serveur Redis v7+. Il est entendu que go-redis est une bibliothèque client Golang Redis populaire et que XAutoClaim est une nouvelle fonctionnalité de sa dernière version, qui peut être utilisée pour allouer automatiquement des tâches dans la file d'attente Redis. Cependant, lors de l'utilisation de cette fonction, il a été constaté qu'elle était incompatible avec le serveur Redis v7+, ce qui l'empêchait de fonctionner correctement. Ce problème peut causer des problèmes aux développeurs utilisant go-redis, nous devons donc trouver une solution pour résoudre ce problème de compatibilité.

Contenu de la question

Question

J'utilise go-redis v8 avec une instance de serveur redis v7. Autant que je sache, la commande XAutoClaim n'est pas compatible. client.XAutoClaim 返回错误:got 3,想要 2.

La documentation officielle go-redis/v8 sur XAutoClaim ne fait aucune mention d'incompatibilité avec redis version 7+.

Étapes pour reproduire

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())
Copier après la connexion

Workaround

go-redis v8 XAutoClaim n'est pas compatible avec Redis version 7+. Bien que ce problème ne soit pas officiellement documenté, il y a un problème à ce sujet ici : https:///github.com/redis/go-redis/issues/2106.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal