首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在redisearch-go (Golang)中为redigo客户端提供密码

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

Stack Overflow用户
提问于 2020-05-08 11:40:22
回答 2查看 1.1K关注 0票数 2

我正在尝试使用Go连接到我的RediSearch (Redis模块)实例。

通过梳理生成客户端的文档和Go代码,我不知道如何在...中将身份验证选项传递给Redigo客户端。这是我的疏忽,还是我们只是希望使用RediSearch而不保护数据库?

在生成RediSearch客户端时,我还尝试了以下方法。每种方法都会给出关于URL格式的错误:

代码语言:javascript
复制
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函数……

EN

回答 2

Stack Overflow用户

发布于 2020-05-08 11:55:54

使用您选择的pool dial function调用NewClientWithPool

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2021-05-12 20:17:30

这样做的一个很好的方法是,通过redigo内置的password auth构造:

代码语言:javascript
复制
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,密码是纯文本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61671647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档