字符串类型
字符串类型是redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制数据。一个字符串类型键允许的数据的最大容量是512MB。
命令
SET
和GET
类似于读和写变量
1 | SET key value [EX seconds] [PX milliseconds] [NX|XX] |
举例:
1 | 127.0.0.1:6379> SET test1 "hello" |
GETRANGE
用于获取存储在键的字符串值的子字符串,由偏移量的开始和结束(两者都包括)确定。可以使用负偏移,以便从字符串的末尾开始计算偏移
1 | GETRANGE KEY_NAME start end |
举例:
1 | 127.0.0.1:6379> GETRANGE test1 0 4 |
GETSET
在Redis键中设置指定的字符串值,并返回其旧值,不存在返回空结果。
1 | GETSET key value |
举例:
1 | 127.0.0.1:6379> GETSET test2 "first GETSET" |
MGET 和 MSET
MGET命令用于获取所有指定键的值。对于不包含字符串值或不存在的每个键,返回空结果
MSET命令用于一次多个键设置它们的值。
1 | MGET key [key ...] |
举例:
1 | 127.0.0.1:6379> MSET test3 "hello" test4 "world" test5 "!!!" |
STRLEN
用于获取存储在键中的字符串值的长度。当键包含非字符串值时返回错误
1 | STRLEN key |
举例:
1 | 127.0.0.1:6379> STRLEN test5 |
SETRANGE
命令用于覆盖键的值,从指定偏移处开始的一部分字符串,返回字符串在修改后的长度。
1 | SETRANGE key offset value |
举例:
1 | 127.0.0.1:6379> GET test1 |
SETNX
命令用于在Redis键中设置某些字符串值(如果该键在Redis中不存在)。如果不存在,则SETNX的全形式是SET。
1 | SETNX key value |
举例:
1 | 127.0.0.1:6379> EXISTS test6 //测试键是否存在,存在返回整数1,否则返回0 |
SETEX
命令用于在Redis键中的指定超时,设置键的字符串值。
SETEX是原子操作,相当于执行了SET键值又对key设置了过期时间。
1 | SETEX key seconds value |
举例:
1 | 127.0.0.1:6379> SETEX test1 30 "thirty" |
MSETNX
用于为多个键设置多个值(仅当在键都不存在时)。如果当前操作中有任何一个存在于Redis中,那么MSETNX不执行任何操作。
1 | MSETNX key value [key value ...] |
举例:
1 | 127.0.0.1:6379> MSETNX test7 "7" test8 "8" |
PSETEX
命令用于设置键的值,以毫秒为单位指定过期时间
1 | PSETEX key milliseconds value |
举例:
1 | 127.0.0.1:6379> PSETEX test9 2000 "millinseconds" |
INCR
命令用于将键的整数值递增1。如果键不存在,则在执行操作之前将其设置为0。如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。此操作限于64位有符号整数。
1 | INCR key |
举例:
1 | 127.0.0.1:6379> INCR counter //如果key不存在,先初始化为0,在进行INCR操作 |
INCRBY
用于将存储在键上的数字按指定的值增加。 如果键不存在,则在执行操作之前将其设置为0。如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。
1 | INCRBY key increment |
举例:
1 | 127.0.0.1:6379> GET counter |
INCRBYFLOAT
用于将递增的字符串表示为浮点数,该值存储在键上指定的增量。 如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或当前键内容或指定的增量不能解析为浮点数,则返回错误。
支持小数点往后17位的运算操作
1 | INCRBYFLOAT key increment |
举例:
1 | 127.0.0.1:6379> INCRBYFLOAT linux 1 |
DECR
用于将键的整数值减1。 如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。 此操作限于64位有符号整数。
1 | DECR key |
举例:
1 | 127.0.0.1:6379> DECR counter |
DECRBY
将存储在键上的数字按指定的值减少。如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。
1 | DECRBY key decrement |
举例:
1 | 127.0.0.1:6379> DECRBY counter -10 |
APPEND
命令用于在键中添加一些值。返回追加后的字符串长度。
1 | APPEND key value |
举例:
1 | 127.0.0.1:6379> SET say hello |
GETBIT
可以获得一个字符串类型指定位置的二进制位的值(0或1),索引以0开始。
1 | GETBIT key offset |
举例:
1 | 127.0.0.1:6379> SET foo bar //bar的二进制表示如下表 |
bar的二进制表示如下:
b | a | r |
---|---|---|
01100010 | 01100001 | 01110010 |
SETBIT
设置字符串类型键指定位置的二进制位的值,返回该位置的旧值。
1 | SETBIT key offset value |
举例:
1 | 127.0.0.1:6379> SETBIT foo 6 0 |
将b的二进制码01100010的下标第6和第7位分别置为0和1,得到01100001是a的ASCLL码。
BITOP
可以对多个字符串类型键进行位运算,并将结果存在destkey参数规定的键中。
BITOP命令支持的运算操作有AND、OR、XOR和NOT
1 | BITOP operation destkey key [key ...] |
举例:
1 | 127.0.0.1:6379> BITOP XOR res foo foo |
两个相同的值做异或运算结果为0。
BITPOS
获得指定键的第一个位值是0或者1的位置。
1 | BITPOS key bit [start] [end] |
举例:
1 | 127.0.0.1:6379> BITPOS foo 1 //第一个值为1的位下标为1 |