ホームページ  >  記事  >  バックエンド開発  >  go-redis v8 XAutoClaim は Redis サーバー v7 以降と互換性がありません

go-redis v8 XAutoClaim は Redis サーバー v7 以降と互換性がありません

王林
王林転載
2024-02-09 16:54:08848ブラウズ

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 返されたエラー: 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())

Solution

go-redis v8 XAutoClaim は Redis バージョン 7 と互換性がありません。この問題は正式に文書化されていませんが、

https:///github.com/redis/go-redis/issues/2106

にそれに関する問題があります。

以上がgo-redis v8 XAutoClaim は Redis サーバー v7 以降と互換性がありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。