Redis:字符串INCR、INCRBY、INCRBYFLOAT、DECR、DECRBY命令介绍
Redis学习(四) - 字符串命令介绍INCRINCR key可用版本: >= 1.0.0时间复杂度: O(1)为键key对应的数字字符串(整数)加上一。演示如果键key不存在, 那么它的值会先被初始化为 0 , 然后再执行INCR命令。INCR命令会返回键key对应的数字字符串转换成数字后,再执行加一操作之后的值。如果键key对应的字符串不能被解释成数字, 那么INCR命令将返回一个错误
INCR
INCR key
可用版本: >= 1.0.0
时间复杂度: O(1)
为键key对应的数字字符串(整数)加上一。
演示
如果键key不存在, 那么它的值会先被初始化为 0 , 然后再执行INCR命令。
INCR命令会返回键key对应的数字字符串转换成数字后,再执行加一操作之后的值。
如果键key对应的字符串不能被解释成数字, 那么INCR命令将返回一个错误。
INCR命令是一个针对字符串的操作。 因为Redis并没有专用的整数类型, 所以键key对应的字符串在执行INCR命令时会被解释为十进制(64位有符号整数)。
INCRBY
INCRBY key increment
可用版本: >= 1.0.0
时间复杂度: O(1)
为键key对应的数字字符串(整数)加上 increment 。
演示
如果键key不存在, 那么键key的值会先被初始化为 0 , 然后再执行INCRBY命令。
INCRBY命令会返回加上 increment 之后, 键key当前的值。
如果键key对应的值不能被解释成数字, 那么INCRBY命令将返回一个错误。
INCRBYFLOAT
INCRBYFLOAT key increment
可用版本: >= 2.6.0
时间复杂度: O(1)
为键key对应的值(浮点数)加上浮点数 increment 。
演示
如果键key不存在, 那么INCRBYFLOAT会先将键key的值设为 0 , 然后再执行加法操作。此外, 无论加法计算所得的浮点数的实际精度有多长, INCRBYFLOAT命令的计算结果最多只保留小数点的后十七位(0.1用二进制表示不出来)。
INCRBYFLOAT命令会返回在加上增量 increment 之后, 键key对应的新值。无论是键key对应的值还是增量 increment , 都可以使用像5e-1这样的指数符号来表示。但是, 执行 INCRBYFLOAT命令之后的值总是以同样的形式储存(比如 0.5 、 1.5 ), 小数部分尾随的0会被移除, 如果可能的话, 命令还会将浮点数转换为整数(比如 1.0 会被保存成 1 ,下图的操作就是这样)。
键key当前的值或者给定的增量increment不能被解释为双精度浮点数,INCRBYFLOAT命令会返回一个错误(INCRBYFLOAT命令执行的键key的值不是字符串类型,自然也会返回一个错误)。
DECR
DECR key
可用版本: >= 1.0.0
时间复杂度: O(1)
为键key对应的数字值(整数)减去一。
演示
如果键key不存在, 那么键key的值会先被初始化为 0 , 然后再执行DECR操作。
DECR命令会返回键key的值执行减一操作之后的新值。
如果键key对应的值不能被解释为数字, 那么DECR命令会返回一个错误。值限制在64位有符号数字表示之内,溢出也会返回一个错误。
DECRBY
DECRBY key decrement
可用版本: >= 1.0.0
时间复杂度: O(1)
将键key对应的数字值(整数)减去decrement 。
演示
如果键key不存在, 那么键key的值会先被初始化为 0 , 然后再执行DECRBY命令。
DECRBY命令会返回键key对应的值在执行减法操作之后的新值。
以下情况,DECRBY命令会返回一个错误。
- 键
key对应的值不是字符串类型。 - 键
key对应的值不能被解释为数字。 - 减量
decrement不能被解释为数字。
Redis中字符串的INCR、INCRBY、INCRBYFLOAT、DECR、DECRBY命令就介绍到这里。
写博客是博主记录自己的学习过程,如果有错误,请指正,谢谢!
更多推荐



所有评论(0)