Redis学习笔记2

93 阅读2分钟

数据结构之字符串2

STRLEN:获取字符串值的字节长度

字符串值的索引

字符串值的正数索引以0为开始,从字符串的开头向结尾不断递增。

字符串值的负数索引以-1为开始,从字符串的结尾向开头不断递减。

GETRANGE:获取字符串值指定索引范围上的内容

GETRANGE命令接受的是闭区间索引范围,也就是说,位于start索引和end索引上的值也会被包含在命令返回的内容当中。

SETRANGE:对字符串值的指定索引范围进行设置

通过使用SETRANGE命令,用户可以将字符串键的值从索引index开始的部分替换为指定的新内容,被替换内容的长度取决于新内容的长度

SETRANGE命令在执行完设置操作之后,会返回字符串值当前的长度作为结果。

redis> GET message

"hello world"

redis> SETRANGE message 6 "Redis"

(integer) 11 -- 字符串值当前的长度为11字节

redis> GET message

"hello Redis"

当用户给定的新内容比被替换的内容更长时,SETRANGE命令就会自动扩展被修改的字符串值,从而确保新内容可以顺利写入。

当用户给定的index索引超出字符串值的长度时,字符串值末尾直到索引index-1之间的部分将使用空字节进行填充,换句话说,这些字节的所有二进制位都会被设置为0(会以\x00符号来表示空字节)。

APPEND:追加新内容到值的末尾

如果用户给定的键并不存在,那么APPEND命令会先将键的值初始化为空字符串"",然后再执行追加操作

INCRBY、DECRBY:对整数值执行加法操作和减法操作

当字符串键的值不能被Redis解释为整数时,对键执行INCRBY命令或是DECRBY命令将返回一个错误。INCRBY和DECRBY的增量和减量也必须能够被Redis解释为整数,使用其他类型的值作为增量或减量将返回一个错误。当INCRBY命令或DECRBY命令遇到不存在的键时,命令会先将键的值初始化为0,然后再执行相应的加法操作或减法操作。

INCR、DECR:对整数值执行加1操作和减1操作

INCRBYFLOAT:对数字值执行浮点数加法操作

·INCRBYFLOAT命令既可用于浮点数值,也可以用于整数值。

·INCRBYFLOAT命令的增量既可以是浮点数,也可以是整数。

在使用INCRBYFLOAT命令处理浮点数的时候,命令最多只会保留计算结果小数点后的17位数字,超过这个范围的小数将被截断