HGET

2020-04-15  本文已影响0人  NotFoundW

HGET

  1. 如果字段存在,返回字段对应的值
  2. 如果字段不存在,返回nil
  3. 如果key不存在,返回nil

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> hget snake name
"kobe"
127.0.0.1:6379> hget snake fakeField
(nil)
127.0.0.1:6379> exists fakeKey
(integer) 0
127.0.0.1:6379> hget fakeKey fakeField
(nil)

Code

func Hget(c redis.Conn) {
    defer c.Do("DEL", "snake")
    //  If field is existing, will return the value of field.
    c.Do("HSET", "snake", "name", "kobe")
    valueOfField, err := redis.String(c.Do("HGET", "snake", "name"))
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
    fmt.Println("Value of field name is:", valueOfField)
    //  If field doesn't exist, will return nil.
    valueOfField, err = redis.String(c.Do("HGET", "snake", "fakeField"))
    if err != nil {
        colorlog.Error(err.Error())
    }
    //  If key doesn't exist, will return nil.
    isExist, _ := c.Do("EXISTS", "fakeKey")
    if isExist == 1 {
        c.Do("DEL", "fakeKey")
    }
    valueOfField, err = redis.String(c.Do("HGET", "fakeKey", "fakeField"))
    if err != nil {
        colorlog.Error(err.Error())
    }
}

Output

$ go run main.go 
Value of field name is: kobe
[ERR]2020/04/15 10:41:49 redigo: nil returned
[ERR]2020/04/15 10:41:49 redigo: nil returned
上一篇 下一篇

猜你喜欢

热点阅读