高朗模拟redis集群服务器

hi3rlvi2  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(656)

如何在golang中模拟redis集群服务器?
简单的redis服务器可以使用“github.com/alicebob/miniredis”包进行模拟,但它不支持集群模拟。
收到以下错误: ERR unknown command 集群 , with args beginning with: 插槽``
我的程序使用“github.com/go redis/redis”包来实现redis。
例如,为以下客户机创建模拟服务器

redisCache := redis.NewClusterClient(redisConfig)
    _, err := redisCache.Ping().Result()
    if err != nil {
        log.Fatalf("fatal error Not able to connect using redis client: %s", err)
    }
jyztefdp

jyztefdp1#

也许用“github.com/alicebob/miniredis/v2”代替“github.com/alicebob/miniredis”就能解决这个问题。
下面是一个例子。

package redis_cluster_test

import (
    "log"
    "testing"
    "time"

    "github.com/alicebob/miniredis/v2"
    "github.com/go-redis/redis"
)

func TestRedisCluster(t *testing.T) {
    mock, err := miniredis.Run()
    if err != nil {
        panic(err)
    }

    redisConfig := redis.ClusterOptions{
        Addrs:        []string{mock.Addr()},
        ReadTimeout:  1 * time.Second,
        WriteTimeout: 1 * time.Second,
        PoolSize:     6500,
        PoolTimeout:  30 * time.Second}

    redisCache := redis.NewClusterClient(&redisConfig)
    _, err = redisCache.Ping().Result()
    if err != nil {
        t.Errorf("fatal error Not able to connect using redis client: %s", err)
        log.Fatalf("fatal error Not able to connect using redis client: %s", err)
    }
}

相关问题