从redis服务器获取列表元素,从[] interface {}到[] string

时间:2013-10-12 03:27:33

标签: types redis go

我尝试使用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

2 个答案:

答案 0 :(得分:4)

我对您正在使用的软件包不熟悉,但the documentation建议使用redis.Strings()而不是redis.Values()来完成您的工作:

  

Strings是一个帮助程序,可将多批量命令回复转换为[]字符串。如果err不等于nil,那么Strings返回nil,错误。如果多个批量项不是批量值或nil,那么Strings会返回错误。

答案 1 :(得分:-2)

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

https://github.com/xuyu/goredis

:)