如何在 redisearch-go (Golang) 中为 redigo 客户端提供密码

我正在尝试使用 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给DialRedigo 函数而不是nil,并将这些选项传递给 RediSearchNewClient函数......


catspeake
浏览 138回答 2
2回答

三国纷争

使用您选择的池拨号功能调用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)

慕婉清6462132

一个很好的方法是这样的,使用 redigo 的内置密码验证结构: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并且密码是纯文本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go