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



