HSCAN

作者: NotFoundW | 来源:发表于2020-04-15 17:48 被阅读0次

HSCAN

遍历hash表,返回游标以及所有字段和对应的值

Command

$ redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> hmset player name allen number 3 team 76ers
OK
127.0.0.1:6379> hscan player 0
1) "0"
2) 1) "name"
   2) "allen"
   3) "number"
   4) "3"
   5) "team"
   6) "76ers"

Code

func Hscan(c redis.Conn) {
    defer c.Do("DEL", "player")
    if _, err := c.Do("HMSET", "player", "name", "allen", "number", 3, "team", "76ers"); err != nil {
        colorlog.Error(err.Error())
        return
    }
    results, err := redis.Values(c.Do("HSCAN", "player", 0))
    if err != nil {
        colorlog.Error(err.Error())
    }
    var cursor int
    var vs []string
    if _, err = redis.Scan(results, &cursor, &vs); err != nil {
        colorlog.Error(err.Error())
        return
    }
    fmt.Println(cursor)
    for i, v := range vs {
        if i%2 == 0 {
            fmt.Println("field", i/2, "is:", v)
        } else {
            fmt.Println("value of field", (i-1)/2, "is:", v)
        }
    }
}

Output

$ go run main.go
0
field 0 is: name
value of field 0 is: allen
field 1 is: number
value of field 1 is: 3
field 2 is: team
value of field 2 is: 76ers

相关文章

网友评论

      本文标题:HSCAN

      本文链接:https://www.haomeiwen.com/subject/bdhhvhtx.html