我正在尝试使用Go连接到我的RediSearch (Redis模块)实例。
通过梳理生成客户端的文档和Go代码,我不知道如何在...中将身份验证选项传递给Redigo客户端。这是我的疏忽,还是我们只是希望使用RediSearch而不保护数据库?
在生成RediSearch客户端时,我还尝试了以下方法。每种方法都会给出关于URL格式的错误:
redisearch.NewClient("mypasswordhere@10.10.10.50:6379", index)
redisearch.NewClient("redis://mypasswordhere@10.10.10.50:6379", index)在pool.go中,在返回客户端的NewSingleHostPool函数中,似乎应该将DialOptions传递给Dial Redigo函数,而不是nil,并将这些选项传递给RediSearch NewClient函数……
发布于 2020-05-08 11:55:54
使用您选择的pool dial function调用NewClientWithPool。
p := &redis.Pool{
Dial: func() (*Conn, error) {
return redis.DialURL("redis://mypasswordhere@10.10.10.50:6379")
},
MaxIdle: 3, // adjust to taste
IdleTimeout: 240 * time.Second, // adjust to taste
}
c := redissearch.NewClientFromPool(p, index)发布于 2021-05-12 20:17:30
这样做的一个很好的方法是,通过redigo内置的password auth构造:
func newPool(server string, password string) *redis.Pool {
return &redis.Pool{
MaxIdle: 3,
IdleTimeout: 240 * time.Second,
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp",
server,
redis.DialPassword(password))
},
TestOnBorrow: func(c redis.Conn, t time.Time) error {
_, err := c.Do("PING")
return err
},
}
}您的server应该是这样的:redis-1344.333.us-east-1-mz.ec2.com:17885,密码是纯文本。
https://stackoverflow.com/questions/61671647
复制相似问题