Redis字符串命令

Redis字符串数据类型的相关命令用于管理redis字符串值。

Redis SET命令

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"

Redis GET命令

RedisGet命令用于获取指定key的值。如果key不存在,返回nil。如果key储存的值不是字符串类型,返回一个错误。

语法

127.0.0.1:6379> GET KEY_NAME

返回值

  • 返回key的值,如果key不存在时,返回nil
  • 如果key不是字符串类型,那么返回一个错误

示例

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

Redis Getrange命令

RedisGetrange命令用于获取存储在指定key中字符串的子字符串。字符串的截取范围由startend两个偏移量决定(包括startend在内)。

语法

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"

Redis Getset命令

RedisGetset命令用于设置指定key的值,并返回key的旧值。

语法

127.0.0.1:6379> GETSET KEY_NAME VALUE

返回值

返回给定key的旧值

  • 当key没有旧值时,即key不存在时,返回nil
  • 当key存在但不是字符串类型时,返回一个错误

示例

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"

Redis Getbit命令

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

Redis Mget命令

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)

Redis Setbit命令

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

Redis Setex命令

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"

Redis Setnx命令

RedisSetnxSET 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"

Redis Setrange命令

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"

Redis Strlen命令

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

Redis Mset命令

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"

Redis Msetnx命令

RedisMsetnx命令用于所有给定key都不存在时,同时设置一个或多个key-value对。

语法

127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN

返回值

  • 当所有key都成功设置,返回1
  • 如果所有给定key都设置失败(至少有一个 key 已经存在),那么返回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"

Redis Psetex命令

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"

Redis Incr命令

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"

Redis Incrby命令

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

Redis Incrbyfloat命令

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"

Redis Decr命令

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

Redis Decrby命令

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

Redis Append命令

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"

results matching ""

    No results matching ""