Rumah >pembangunan bahagian belakang >Golang >go-redis v8 XAutoClaim tidak serasi dengan pelayan Redis v7+

go-redis v8 XAutoClaim tidak serasi dengan pelayan Redis v7+

王林
王林ke hadapan
2024-02-09 16:54:08913semak imbas

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

Editor PHP Zimo di sini untuk memperkenalkan kepada anda satu isu penting, iaitu, fungsi XAutoClaim go-redis v8 tidak serasi dengan pelayan Redis v7+. Difahamkan bahawa go-redis ialah perpustakaan pelanggan Golang Redis yang popular, dan XAutoClaim ialah ciri baharu dalam versi terbaharunya, yang boleh digunakan untuk memperuntukkan tugas secara automatik dalam baris gilir Redis. Walau bagaimanapun, apabila menggunakan fungsi ini, didapati ia tidak serasi dengan pelayan Redis v7+, menyebabkan ia tidak berfungsi dengan baik. Masalah ini mungkin menyebabkan beberapa masalah kepada pembangun menggunakan go-redis, jadi kami perlu mencari penyelesaian untuk menyelesaikan isu keserasian ini.

Isi soalan

Soalan

Saya menggunakan go-redis v8 dengan instance pelayan redis v7. Setahu saya, arahan XAutoClaim tidak serasi. client.XAutoClaim 返回错误:got 3,想要 2.

Dokumentasi rasmi go-redis/v8 pada XAutoClaim tidak menyebut tentang ketidakserasian dengan redis versi 7+.

Langkah untuk membiak

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

Penyelesaian

go-redis v8 XAutoClaim tidak serasi dengan Redis versi 7+. Walaupun isu ini tidak didokumenkan secara rasmi, terdapat isu mengenainya di sini: https:///github.com/redis/go-redis/issues/2106.

Atas ialah kandungan terperinci go-redis v8 XAutoClaim tidak serasi dengan pelayan Redis v7+. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam