Strings

在Redis中,STRINGs可以用于存储以下三种类型数据:

  • 字节字符串
  • 整型
  • 浮点型

整型和浮点型可以按照任意数值递增或递减(整型可以按需转换为浮点型)。整型范围等同于平台的长整型(long integer)范围(在32-bit平台上有符号整型是32-bit,在64-bit平台上有符号整型是64-bit)。floats可用范围和限制依照IEEE 754 floating-point doubles.

整型,浮点型的STRINGs可以使用递增/递减操作

Redis中递增递减操作

命令 用法示例和描述
INCR INCR key-name —— 使key存储的值加1
DECR DECR key-name —— 使key存储的值减1
INCRBY INCRBY key-name amount —— 使key存储的值增加给定的整数
DECRBY DECRBY key-name amount —— 使key存储的值减少给定的整数
INCRBYFLOAT INCRBYFLOAT key-name amount —— 使key存储的值增加给定的浮点数(Redis 2.6以上可用)

Redis还额外提供字符串的操作方法。

Redis可用的字符串操作命令

命令 用法示例和描述
APPEND APPEND key-name value —— 使key存储的字符串追加给定的值
GETRANGE GETRANGE key-name start end —— 获取从start到end的所包含的子字符串
SETRANGE SETRANGE key-name offset value —— 使子字符串从给定位置开始覆盖为给定值
GETBIT GETBIT key-name offset —— 将字节串作为比特串处理,并返回字符串中给定比特偏移量的比特值
SETBIT SETBIT key-name offset value —— 将字节串作为比特串处理,设置指定比特偏移量的值为给定比特
BITCOUNT BITCOUNT key-name [start end] —— 统计字符串中比特值为1的数量,可选参数为起始和结束位
BITOP BITOP operation dest-key key-name [key-name ...] —— 在提供的字符串执行一个位操作运算,AND, OR, XOR,或NOT, 存储结果到目标key

GETRANGE AND SUBSTR: 在过去,GETRANGE被命名为SUBSTR, Python客户端依旧沿用substr()方法获取字符串的子串。当Redis版本高于2.6时,应该使用getrange()方法,低于2.6版本使用substr()方法。

当使用SETRANGESETBIT写入strings时,如果STRING原先不够长,Redis将会在更新数据之自动以null填充STRING,但是当使用GETBIT读取比特数时,任何超出STRING结尾的部分以0处理。下面将看到这一类的用法。