我想念什么吗? 我找不到罗勒示例,只是连接并设置值然后获得相同的值。 没有池或集群。 我什至不知道如何连接到数据库。
我知道对于 Golang 的专业人士来说,一切都是显而易见的,但我是 Go 的第一周开发人员,并不是所有的事情都是显而易见的,我需要例子。
godoc 中的示例很好地涵盖了这一点。
https://godoc.org/github.com/gomodule/redigo/redis#pkg -examples
以下是建立新连接的方法:
https://godoc.org/github.com/gomodule/redigo/redis#example -Dial
此代码段向您展示了如何先写入然后读取字符串:
https://godoc.org/github.com/gomodule/redigo/redis#example -String
谢谢你。 我想要的是获取具有键p_1:*
列表行
这是我的代码
conn, err := redis.DialURL("redis://172.17.0.1:6379")
defer conn.Close()
if err != nil {
panic(err.Error())
}
res, err := conn.Do("KEYS", "p_1:*")
if err != nil {
panic(err.Error())
}
res, err = redis.Values(conn.Do("MGET", res))
if err != nil {
panic(err.Error())
}
fmt.Println(res)
当我拿到钥匙时, res
有一些看起来像字节数组的东西。 但我无法获得这些键值。
查看我在之前的帖子中链接到的文档,当使用“GET”读取字符串时,您应该使用转换函数redis.String()
将字节结果转换为 Golang 字符串。
首先,让我说我如何感谢您的时间。
我查看了文档,但我无法理解。 当我拿到钥匙时,我就有了结果。 但是当我 MGET 我有nil
我不使用 GET。 我使用 KEYS 并且应该返回数组,所以也许我必须将 KEYS 转换为其他东西。
你能看看我的代码并告诉我缺少什么吗?
你要:
keys, err := redis.Strings(conn.Do("KEYS", "p_1:*"))
if err != nil {
panic(err.Error())
}
for _, k := range keys {
fmt.Println(k)
}
@stevenh是的,ш 可以做到。 ш 可以是键列表。 我无法将此列表转换为适当的格式以使用 MGET
不需要转换只需使用可变参数扩展传递结果,例如
vals, err := redis.Values(conn.Do("HGET", keys...))