【问题标题】:getting list elements from a redis server ,from []interface{} to []string从 Redis 服务器获取列表元素,从 []interface{} 到 []string
【发布时间】:2013-10-20 05:50:54
【问题描述】:

我尝试使用redigo 连接redis-server 正在运行。

我想创建一个list 的字符串,追加一个字符串,然后从服务器获取所有元素并打印出来。

这个,我试过了

package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
)

func main() {
    c, err := redis.Dial("tcp", ":6379")
    check(err)
    defer c.Close()
    _, err = c.Do("LPUSH", "bars", "foo")
    check(err)

    n, err := redis.Values(c.Do("LRANGE", "bars", 0, 10))
    check(err)
    fmt.Println(n)
}

func check(err error) {
    if err != nil {
        panic(err)
    }
}

我得到的是[[102 111 111]],而不是foo,看来

如何将[]interface{}Values 返回类型)转换为[]string

【问题讨论】:

    标签: redis go types redis go


    【解决方案1】:

    我不熟悉您正在使用的软件包,但 the documentation 建议使用 redis.Strings() 而不是 redis.Values() 可以满足您的需求:

    Strings 是一个将多批量命令回复转换为 [] 字符串的助手。如果 err 不等于 nil,则 Strings 返回 nil,err。如果多批量项不是批量值或零,则字符串返回错误。

    【讨论】:

    • 正是我需要的。
    【解决方案2】:

    也许你可以试试这个 golang 的 redis 客户端:

    https://github.com/xuyu/goredis

    :)

    【讨论】:

    • 虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
    猜你喜欢
    • 2012-11-28
    • 2013-05-27
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2015-07-29
    • 2013-03-20
    相关资源
    最近更新 更多