HGETALL
- 如果hash表存在字段,则返回所有字段名以及对应的值。
- 如果key不存在,则返回空列表
Command
$ redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> hset snake name kobe
(integer) 1
127.0.0.1:6379> hset snake number 24
(integer) 1
127.0.0.1:6379> hgetall snake
1) "name"
2) "kobe"
3) "number"
4) "24"
127.0.0.1:6379> del snake
(integer) 1
127.0.0.1:6379> hgetall snake
(empty list or set)
Code
func Hgetall(c redis.Conn) {
defer c.Do("DEL", "snake")
// If hash table has fields, will return names and values of all the fields.
c.Do("HSET", "snake", "name", "kobe")
c.Do("HSET", "snake", "number", "24")
fieldsAndValues, err := redis.Strings(c.Do("HGETALL", "snake"))
if err != nil {
colorlog.Error(err.Error())
return
}
for i, v := range fieldsAndValues {
if i%2 == 0 {
fmt.Println("field", i/2, "is:", v)
} else {
fmt.Println("value of field", (i-1)/2, "is:", v)
}
}
// If key doesn't exist, will return an empty list.
c.Do("DEL", "snake")
fieldsAndValues, err = redis.Strings(c.Do("HGETALL", "snake"))
if err != nil {
colorlog.Error(err.Error())
return
}
fmt.Println("If key doesn't exist, will return an empty list. List's length is:", len(fieldsAndValues))
}
Output
$ go run main.go
field 0 is: name
value of field 0 is: kobe
field 1 is: number
value of field 1 is: 24
If key doesn't exist, will return an empty list. List's length is: 0
网友评论