redis string
- 官网命令地址:https://redis.io/commands/?group=string。
- redis客户端查询命令:
help @string
string
- string类型,也就是字符串类型,是Redis中最简单的存储类型。
- 其value是字符串,不过根据字符串的格式不同,又可以分为3类:
- string:普通字符串。
- int:整数类型,可以做自增,自减操作。
- float:浮点类型,可以做自增.自减操作。
KEY | Value |
---|---|
message | hello world |
number | 18 |
score | 87.6 |
APPEND
-
将字符串附加到key的值。如果key不存在,则创建该key。
-
语法:
APPEND key value
- 示例:
redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"
DECR
-
将key的整数值减1。如果key不存在,则使用0作为初始值。
-
语法:
DECR key
- 示例:
redis> SET mykey "10"
"OK"
redis> DECR mykey
(integer) 9
redis> SET mykey "234293482390480948029348230948"
"OK"
redis> DECR mykey
(error) value is not an integer or out of range
DECRBY
-
从key的整数值中减去一个数字。如果key不存在,则使用0作为初始值。
-
语法:
DECRBY key decrement
- 示例:
redis> SET mykey "10"
"OK"
redis> DECRBY mykey 3
(integer) 7
GET
-
返回key的字符串值。
-
语法:
GET key
- 示例:
redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
- Go代码:
|
|
GETDEL
-
在删除key后返回key的字符串值。
-
语法:
GETDEL key
- 示例:
redis> SET mykey "Hello"
"OK"
redis> GETDEL mykey
"Hello"
redis> GET mykey
(nil)
GETEX
-
在设置key的过期时间后返回key的字符串值。
-
语法:
GETEX key [EX seconds | PX milliseconds | EXAT unix-time-seconds |
PXAT unix-time-milliseconds | PERSIST]
EX
seconds – 设置指定的过期时间,以秒为单位。PX
milliseconds – 设置指定的过期时间,以毫秒为单位。EXAT
timestamp-seconds – 设置key到期的指定Unix时间,以秒为单位。PXAT
timestamp-milliseconds – 设置key到期的指定Unix时间,以毫秒为单位。PERSIST
– 删除与该key关联的生存时间。
- 示例:
redis> SET mykey "Hello"
"OK"
redis> GETEX mykey
"Hello"
redis> TTL mykey
(integer) -1
redis> GETEX mykey EX 60
"Hello"
redis> TTL mykey
(integer) 60
GETRANGE
-
返回存储在key中的字符串的子字符串。
-
语法:
GETRANGE key start end
- 示例:
redis> SET mykey "This is a string"
"OK"
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"
GETSET
-
将key设置为新值后返回key的前一个字符串值。
-
语法:
GETSET key value
- 示例:
redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"
INCR
-
将key的整数值加1。如果key不存在,则使用0作为初始值。
-
语法:
INCR key
- 示例:
redis> SET mykey "10"
"OK"
redis> INCR mykey
(integer) 11
redis> GET mykey
"11"
INCRBY
-
将key的整数值增加一个数字。如果key不存在,则使用0作为初始值。
-
语法:
INCRBY key increment
- 示例:
redis> SET mykey "10"
"OK"
redis> INCRBY mykey 5
(integer) 15
INCRBYFLOAT
-
将key的浮点值增加一个数字。如果key不存在,则使用0作为初始值。
-
语法:
INCRBYFLOAT key increment
- 示例:
redis> SET mykey 10.50
"OK"
redis> INCRBYFLOAT mykey 0.1
"10.6"
redis> INCRBYFLOAT mykey -5
"5.6"
redis> SET mykey 5.0e3
"OK"
redis> INCRBYFLOAT mykey 2.0e2
"5200"
LCS
-
查找最长的公共子字符串。
-
语法:
LCS key1 key2 [LEN] [IDX] [MINMATCHLEN min-match-len] [WITHMATCHLEN]
- 示例:
> MSET key1 ohmytext key2 mynewtext
OK
> LCS key1 key2
"mytext"
> LCS key1 key2 LEN
(integer) 6
> LCS key1 key2 IDX
1) "matches"
2) 1) 1) 1) (integer) 4
1) (integer) 7
1) 1) (integer) 5
1) (integer) 8
2) 1) 1) (integer) 2
2) (integer) 3
1) 1) (integer) 0
1) (integer) 1
3) "len"
4) (integer) 6
MGET
-
自动返回一个或多个key的字符串值。
-
语法:
MGET key [key ...]
- 示例:
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> MGET key1 key2 nonexisting
1) "Hello"
2) "World"
3) (nil)
MSET
-
自动创建或修改一个或多个key的字符串值。
-
语法:
MSET key value [key value ...]
- 示例:
redis> MSET key1 "Hello" key2 "World"
"OK"
redis> GET key1
"Hello"
redis> GET key2
"World"
MSETNX
-
仅在不存在所有key时才自动修改一个或多个key的字符串值。(仅当key不存在时才会设置value)
-
语法:
MSETNX key value [key value ...]
- 示例:
redis> MSETNX key1 "Hello" key2 "there"
(integer) 1
redis> MSETNX key2 "new" key3 "world"
(integer) 0
redis> MGET key1 key2 key3
1) "Hello"
2) "there"
3) (nil)
PSETEX
-
设置key的字符串值和过期时间(以毫秒为单位)。如果key不存在,则创建该key。
-
语法:
PSETEX key milliseconds value
- 示例:
redis> PSETEX mykey 1000 "Hello"
"OK"
redis> PTTL mykey
(integer) 998
redis> GET mykey
"Hello"
SET
-
设置key的字符串值,忽略其类型。如果key不存在,则创建该key。
-
语法:
SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |
EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]
EX
seconds – 设置指定的过期时间,单位为秒(正整数)。PX
milliseconds – 设置指定的过期时间,单位为毫秒(正整数)。EXAT
timestamp-seconds – 设置key到期的指定Unix时间,以秒为单位(一个正整数)。PXAT
timestamp-milliseconds – 设置key到期的指定Unix时间,以毫秒为单位(正整数)。NX
– 仅在key不存在时设置该key。XX
– 只有当key已经存在时才设置它。KEEPTTL
– 保留与该key关联的生存时间。GET
– 返回存储在key处的旧字符串,如果key不存在则返回nil。如果存储在key处的值不是字符串,则返回错误并终止’ SET ‘。
-
注意:由于SET命令选项可以取代SETNX, SETEX, PSETEX, GETSET,在Redis的未来版本中,这些命令可能会被弃用并最终被删除。
-
示例:
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> SET anotherkey "will expire in a minute" EX 60
"OK"
- Go代码:
|
|
SETEX
-
设置key的字符串值和过期时间。如果key不存在,则创建该key。
-
语法:等价于
SET key value EX seconds
SETEX key seconds value
- 示例:
redis> SETEX mykey 10 "Hello"
"OK"
redis> TTL mykey
(integer) 10
redis> GET mykey
"Hello"
SETNX
-
仅当key不存在时才设置该key的字符串值。
-
语法:
SETNX key value
- 示例:
redis> SETNX mykey "Hello"
(integer) 1
redis> SETNX mykey "World"
(integer) 0
redis> GET mykey
"Hello"
SETRANGE
-
将字符串值的一部分以偏移量覆盖另一部分。如果key不存在,则创建该key。
-
语法:
SETRANGE key offset value
- 示例:
redis> SET key1 "Hello World"
"OK"
redis> SETRANGE key1 6 "Redis"
(integer) 11
redis> GET key1
"Hello Redis"
redis> SETRANGE key2 6 "Redis"
(integer) 11
redis> GET key2
"Redis"
STRLEN
-
返回字符串值的长度。
-
语法:
STRLEN key
- 示例:
redis> SET mykey "Hello world"
"OK"
redis> STRLEN mykey
(integer) 11
redis> STRLEN nonexisting
(integer) 0
SUBSTR
-
从字符串值返回子字符串。
-
语法:
SUBSTR key start end
- 示例:
redis> SET mykey "This is a string"
"OK"
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"