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
网友评论