Hincrby

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

Hincrby

  1. 正数和负数均可作为增量参数,返回算术结果,即该字段新的值
  2. 如果字段不存在,将以0为初始值创建该字段,然后与增量进行计算,并返回结果
  3. 如果此命令作用在string类型上,会报错
  4. Hincebyfloat与此命令基本没区别

Command

$ redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> hset snake number 24
(integer) 1
127.0.0.1:6379> hincrby snake number 1
(integer) 25
127.0.0.1:6379> hincrby snake number -1
(integer) 24
127.0.0.1:6379> hincrby snake fake 5
(integer) 5
127.0.0.1:6379> hset snake team lakers
(integer) 1
127.0.0.1:6379> hincrby snake team 2
(error) ERR hash value is not an integer

Code

func Hincrby(c redis.Conn) {
    defer c.Do("DEL", "snake")
    //  The increment can be positive or negative, will return the result of addition.
    c.Do("HSET", "snake", "number", "24")
    newValue, err := c.Do("HINCRBY", "snake", "number", 1)
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
    fmt.Println("The increment is positive and new value of field is:", newValue)
    newValue, err = c.Do("HINCRBY", "snake", "number", -1)
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
    fmt.Println("The increment is negative and new value of field is:", newValue)
    // If field doesn't exist, will create the field with value 0, then add increment.
    newValue, err = c.Do("HINCRBY", "snake", "fake", 5)
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
    fmt.Println("The result of new field is:", newValue)
    //  If use HINCRBY on string field, will get error.
    c.Do("HSET", "snake", "team", "lakers")
    newValue, err = c.Do("HINCRBY", "snake", "team", 2)
    if err != nil {
        colorlog.Error(err.Error())
        return
    }
}

Output

$ redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> hset snake number 24
(integer) 1
127.0.0.1:6379> hincrby snake number 1
(integer) 25
127.0.0.1:6379> hincrby snake number -1
(integer) 24
127.0.0.1:6379> hincrby snake fake 5
(integer) 5
127.0.0.1:6379> hset snake team lakers
(integer) 1
127.0.0.1:6379> hincrby snake team 2
(error) ERR hash value is not an integer

相关文章

网友评论

      本文标题:Hincrby

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