unit-testing之Golang模拟Redis群集服务器

daizhj 阅读:28 2025-06-02 22:19:02 评论:0

如何在Golang中模拟Redis集群服务器?
可以使用'github.com/alicebob/miniredis'软件包来模拟简单的Redis服务器,但它不支持集群模拟。
收到以下错误: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) 
    } 

请您参考如下方法:

也许使用“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) 
    } 
} 


标签:Redis
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号