Redis字符串数据类型的相关命令用于管理redis字符串值。
RedisSET
命令用于设置给定key的值。如果key已经存储其他值,SET就覆写旧值,且无视类型。
语法
127.0.0.1:6379> SET KEY_NAME VALUE
返回值
在设置操作成功完成时,返回OK
示例
127.0.0.1:6379> SET mykey redis
OK
127.0.0.1:6379> GET mykey
"redis"
RedisGet
命令用于获取指定key的值。如果key不存在,返回nil
。如果key储存的值不是字符串类型,返回一个错误。
语法
127.0.0.1:6379> GET KEY_NAME
返回值
nil
示例
127.0.0.1:6379> GET mykey
(nil)
127.0.0.1:6379> SET mykey redis
OK
127.0.0.1:6379> GET mykey
"redis"
127.0.0.1:6379> LPUSH db redis mongodb mysql
(integer) 3
127.0.0.1:6379> GET db
(error) ERR Operation against a key holding the wrong kind of value
RedisGetrange
命令用于获取存储在指定key中字符串的子字符串。字符串的截取范围由start
和end
两个偏移量决定(包括start
和end
在内)。
语法
127.0.0.1:6379> GETRANGE KEY_NAME start end
返回值
截取得到的子字符串
示例
127.0.0.1:6379> SET mykey "This is my test key"
OK
127.0.0.1:6379> GETRANGE mykey 0 3
"This"
127.0.0.1:6379> GETRANGE mykey 0 -1
"This is my test key"
RedisGetset
命令用于设置指定key的值,并返回key的旧值。
语法
127.0.0.1:6379> GETSET KEY_NAME VALUE
返回值
返回给定key的旧值
nil
示例
127.0.0.1:6379> GETSET mykey redis
(nil)
127.0.0.1:6379> GET mykey
"redis"
127.0.0.1:6379> GETSET mykey redis2
"redis"
127.0.0.1:6379> GET mykey
"redis2"
RedisGetbit
命令用于对key所储存的字符串值,获取指定偏移量上的位(bit)。
语法
127.0.0.1:6379> GETBIT KEY_NAME OFFSET
返回值
字符串值指定偏移量上的位(bit)。
当偏移量OFFSET
比字符串值的长度大,或者key不存在时,返回0
示例
127.0.0.1:6379> EXISTS bit
(integer) 0
127.0.0.1:6379> GETBIT bit 100
(integer) 0
127.0.0.1:6379> SETBIT bit 100 1
(integer) 0
127.0.0.1:6379> GETBIT bit 100
(integer) 1
RedisMget
命令返回所有(一个或多个)给定key的值。 如果给定的key里面,有某个key不存在,那么这个key返回特殊值nil
。
语法
127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN
返回值
一个包含所有给定key的值的列表
示例
127.0.0.1:6379> SET key1 "hello"
OK
127.0.0.1:6379> SET key2 "world"
OK
127.0.0.1:6379> MGET key1 key2 key3
1) "Hello"
2) "World"
3) (nil)
RedisSetbit
命令用于对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
语法
127.0.0.1:6379> SETBIT KEY_NAME OFFSET
返回值
指定偏移量原来储存的位
示例
127.0.0.1:6379> SETBIT bit 100 1
(integer) 0
127.0.0.1:6379> GETBIT bit 100
(integer) 1
127.0.0.1:6379> GETBIT bit 10
(integer) 0
RedisSetex
命令为指定的key设置值及其过期时间。如果key已经存在,SETEX命令将会替换旧的值。
语法
127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE
返回值
设置成功时返回OK
示例
127.0.0.1:6379> SETEX mykey 60 redis
OK
127.0.0.1:6379> TTL mykey
59
127.0.0.1:6379> GET mykey
"redis"
RedisSetnx
(SET if Not eXists
)命令在指定的key不存在时,为key设置指定的值。
语法
127.0.0.1:6379> SETNX KEY_NAME VALUE
返回值
1
0
示例
127.0.0.1:6379> EXISTS job
(integer) 0
127.0.0.1:6379> SETNX job "programmer"
(integer) 1
127.0.0.1:6379> SETNX job "code-farmer"
(integer) 0
127.0.0.1:6379> GET job
"programmer"
RedisSetrange
命令用指定的字符串覆盖给定key所储存的字符串值,覆盖的位置从偏移量OFFSET
开始。
语法
127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE
返回值
被修改后的字符串长度
示例
127.0.0.1:6379> SET key1 "Hello World"
OK
127.0.0.1:6379> SETRANGE key1 6 "Redis"
(integer) 11
127.0.0.1:6379> GET key1
"Hello Redis"
RedisStrlen
命令用于获取指定key所储存的字符串值的长度。当key储存的不是字符串值时,返回一个错误。
语法
127.0.0.1:6379> STRLEN KEY_NAME
返回值
字符串值的长度。 当 key 不存在时,返回 0
示例
127.0.0.1:6379> SET mykey "Hello world"
OK
127.0.0.1:6379> STRLEN mykey
(integer) 11
127.0.0.1:6379> STRLEN nonexisting
(integer) 0
RedisMset
命令用于同时设置一个或多个key-value对。
语法
127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN
返回值
总是返回OK
示例
127.0.0.1:6379> MSET key1 "Hello" key2 "World"
OK
127.0.0.1:6379> GET key1
"Hello"
127.0.0.1:6379> GET key2
"World"
RedisMsetnx
命令用于所有给定key都不存在时,同时设置一个或多个key-value对。
语法
127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN
返回值
1
0
示例
127.0.0.1:6379> MSETNX rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
(integer) 1
127.0.0.1:6379> MGET rmdbs nosql key-value-store
1) "MySQL"
2) "MongoDB"
3) "redis"
127.0.0.1:6379> MSETNX rmdbs "Sqlite" language "python"
(integer) 0
127.0.0.1:6379> EXISTS language
(integer) 0
127.0.0.1:6379> GET rmdbs
"MySQL"
RedisPsetex
命令以毫秒为单位设置key的生存时间。
语法
127.0.0.1:6379> PSETEX key1 EXPIRY_IN_MILLISECONDS value1
返回值
设置成功时返回OK
示例
127.0.0.1:6379> PSETEX mykey 1000 "Hello"
OK
127.0.0.1:6379> PTTL mykey
999
127.0.0.1:6379> GET mykey
"Hello"
RedisIncr
命令将key中储存的数字值增一。
如果key不存在,那么key的值会先被初始化为0
,然后再执行INCR操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
语法
127.0.0.1:6379> INCR KEY_NAME
返回值
执行 INCR 命令之后 key 的值
示例
127.0.0.1:6379> SET i 20
OK
127.0.0.1:6379> INCR i
(integer) 21
127.0.0.1:6379> GET i
"21"
RedisIncrby
命令将key中储存的数字加上指定的增量值。
如果key不存在,那么key的值会先被初始化为0
,然后再执行INCRBY
命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
语法
127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT
返回值
加上指定的增量值之后,key的值
示例
127.0.0.1:6379> SET rank 50
OK
127.0.0.1:6379> INCRBY rank 20
(integer) 70
127.0.0.1:6379> GET rank
"70"
127.0.0.1:6379> EXISTS counter
(integer) 0
127.0.0.1:6379> INCRBY counter 30
(integer) 30
127.0.0.1:6379> GET counter
"30"
127.0.0.1:6379> SET book "long long ago..."
OK
127.0.0.1:6379> INCRBY book 200
(error) ERR value is not an integer or out of range
RedisIncrbyfloat
命令为key中所储存的值加上指定的浮点数增量值。
如果key不存在,那么INCRBYFLOAT
会先将key的值设为0
,再执行加法操作。
语法
127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT
返回值
执行命令之后key的值
示例
127.0.0.1:6379> SET mykey 10.50
OK
127.0.0.1:6379> INCRBYFLOAT mykey 0.1
"10.6"
127.0.0.1:6379> SET mykey 314e-2
OK
127.0.0.1:6379> GET mykey
"314e-2"
127.0.0.1:6379> INCRBYFLOAT mykey 0
"3.14"
127.0.0.1:6379> SET mykey 3
OK
127.0.0.1:6379> INCRBYFLOAT mykey 1.1
"4.1"
127.0.0.1:6379> SET mykey 3.0
OK
127.0.0.1:6379> GET mykey
"3.0"
127.0.0.1:6379> INCRBYFLOAT mykey 1.000000000000000000000
"4"
127.0.0.1:6379> GET mykey
"4"
RedisDecr
命令将key中储存的数字值减一。
如果key不存在,那么key的值会先被初始化为0
,然后再执行DECR
操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
语法
127.0.0.1:6379> DECR KEY_NAME
返回值
执行命令之后key的值
示例
127.0.0.1:6379> SET failure_times 10
OK
127.0.0.1:6379> DECR failure_times
(integer) 9
127.0.0.1:6379> EXISTS count
(integer) 0
127.0.0.1:6379> DECR count
(integer) -1
127.0.0.1:6379> SET company YOUR_CODE_SUCKS.LLC
OK
127.0.0.1:6379> DECR company
(error) ERR value is not an integer or out of range
RedisDecrby
命令将key所储存的值减去指定的减量值。
如果key不存在,那么key的值会先被初始化为0
,然后再执行DECRBY
操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
语法
127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT
返回值
减去指定减量值之后,key的值
示例
127.0.0.1:6379> SET count 100
OK
127.0.0.1:6379> DECRBY count 20
(integer) 80
127.0.0.1:6379> EXISTS pages
(integer) 0
127.0.0.1:6379> DECRBY pages 10
(integer) -10
RedisAppend
命令用于为指定的key追加值。
如果key已经存在并且是一个字符串,APPEND
命令将value追加到key原来的值的末尾。
如果key不存在,APPEND
就简单地将给定key设为value,就像执行SET key value
一样。
语法
127.0.0.1:6379> APPEND KEY_NAME NEW_VALUE
返回值
追加指定值之后,key中字符串的长度
示例
127.0.0.1:6379> EXISTS myphone
(integer) 0
127.0.0.1:6379> APPEND myphone "nokia"
(integer) 5
127.0.0.1:6379> APPEND myphone " - 1110"
(integer) 12
127.0.0.1:6379> GET myphone
"nokia - 1110"