原始字符串命令
APPEND
语法
APPEND key value
如果键已存在且是字符串,此命令将值附加到字符串的末尾。如果键不存在,则创建并设置为空字符串。
RESP 回复
整数回复:追加操作后字符串的长度。
DECR
语法
DECR key
将存储在键处的数字减一。如果键不存在,则在执行操作前将其设置为 0。如果键包含错误类型的值或包含无法表示为整数的字符串,则返回错误。
RESP 回复
整数回复:递减后键的值。
DECRBY
语法
DECRBY key decrement
将存储在键处的数字减去参数 decrement
的值。如果键不存在,则在执行操作前将其设置为 0。如果键包含错误类型的值或包含无法表示为整数的字符串,则返回错误。
Resp 回复
整数回复:递减后键的值。
GET
语法
GET key
获取键的值。如果键不存在,则返回 nil。
Resp 回复
以下之一
- 批量字符串回复:键的值。
- Nil 回复:如果键不存在。
GETEX
语法
GETEX key [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | PERSIST]
获取键的值并可选地设置其过期时间。GETEX 类似于 GET,但它是具有附加选项的写入命令。
GETEX 命令支持一组修改其行为的选项
- EX seconds -- 设置指定的过期时间,单位为秒。
- PX milliseconds -- 设置指定的过期时间,单位为毫秒。
- EXAT timestamp-seconds -- 设置键将过期的指定 Unix 时间,单位为秒。
- PXAT timestamp-milliseconds -- 设置键将过期的指定 Unix 时间,单位为毫秒。
- PERSIST -- 移除与键关联的生存时间。
Resp 回复
以下之一
- 批量字符串回复:键的值。
- Nil 回复:如果键不存在或键的值类型不是字符串。
GETDEL
语法
GETDEL key
获取键的值并删除键。此命令类似于 GET,但它在成功时也会删除键(当且仅当键的值类型是字符串时)。
Resp 回复
以下之一
- 批量字符串回复:键的值。
- Nil 回复:如果键不存在或键的值类型不是字符串。
GETSET
注意:GETSET 是一个已废弃的命令,在迁移或编写新代码时请使用带有 GET
参数的 SET。
语法
GETSET key value
原子性地将键设置为值并返回存储在键处的旧值。
Resp 回复
以下之一
- 批量字符串回复:存储在键处的旧值。
- Null 回复:如果键不存在。
GETRANGE
语法
GETRANGE key start end
返回存储在键处的字符串值的子字符串,由偏移量 start 和 end 确定(两者都包含在内)。
Resp 回复
批量字符串回复:存储在键处的字符串值的子字符串,由偏移量 start 和 end 确定(两者都包含在内)。
SUBSTR
注意:SUBSTR 是一个已废弃的命令,在迁移或编写新代码时请使用 GETRANGE。
语法
SUBSTR key start end
返回存储在键处的字符串值的子字符串,由偏移量 start 和 end 确定(两者都包含在内)。
Resp 回复
批量字符串回复:存储在键处的字符串值的子字符串,由偏移量 start 和 end 确定(两者都包含在内)。
INCR
语法
INCR key
将存储在键处的数字加一。如果键不存在,则在执行操作前将其设置为 0。
Resp 回复
整数回复:递增后键的值。
INCRBY
语法
INCRBY key increment
将存储在键处的数字加上参数 increment 的值。如果键不存在,则在执行操作前将其设置为 0。
Resp 回复
整数回复:递增后键的值。
INCRBYFLOAT
语法
INCRBYFLOAT key increment
将存储在键处的表示浮点数的字符串增加指定的增量。通过使用负增量值,结果是键处存储的值被递减。如果键不存在,则在执行操作前将其设置为 0。
Resp 回复
批量字符串回复:递增后键的值。
LCS
语法
LCS key1 key2 [LEN] [IDX] [MINMATCHLEN len] [WITHMATCHLEN]
返回存储在 key1 和 key2 处的值的最长公共子序列。
LCS 命令支持一组修改其行为的选项
- LEN -- 返回最长公共子序列的长度。
- IDX -- 返回最长公共子序列的匹配位置。
- MINMATCHLEN len -- 仅返回长度大于或等于 len 的匹配项。
- WITHMATCHLEN -- 返回匹配项的长度。
Resp 回复
以下之一
- 批量字符串回复:存储在 key1 和 key2 处的值的最长公共子序列。
- 整数回复:最长公共子序列的长度(如果指定了 LEN)。
- 数组回复:最长公共子序列的匹配位置(如果指定了 IDX)。
MGET
语法
MGET key [key ...]
返回所有指定键的值。对于每个不存在的键,返回特殊值 nil。
MSET
语法
MSET key value [key value ...]
将给定键设置为其相应的值。MSET 替换现有值,就像常规 SET 一样。如果您不想覆盖现有值,请参阅 MSETNX。
Resp 回复
数组回复:指定键的值列表。
MSETNX
语法
MSETNX key value [key value ...]
将给定键设置为其相应的值。即使只有一个键已经存在,MSETNX 也不会执行任何操作。
Resp 回复
以下之一
- 整数回复:如果未设置任何键(至少有一个键已存在),则为 0。
- 整数回复:如果所有键都已设置,则为 1。
PSETEX
语法
PSETEX key milliseconds value
PSETEX 的工作方式与 SETEX 完全相同,唯一的区别是过期时间以毫秒而不是秒为单位指定。
Resp 回复
简单字符串回复:OK。
SET
语法
SET key value [NX | XX] [GET] [EX seconds | PX milliseconds] [KEEPTTL] [WITHETAG]
将 key 设置为字符串值。如果键已持有值,则无论其类型如何,都将被覆盖。成功执行 SET 操作后,与 key 关联的任何先前的生存时间都将被丢弃。
选项
- EX seconds -- 设置指定的过期时间,单位为秒(正整数)。
- PX milliseconds -- 设置指定的过期时间,单位为毫秒(正整数)。
- NX -- 仅在键不存在时设置键。
- XX -- 仅在键已存在时设置键。
- KEEPTTL -- 保留与键关联的生存时间。
- WITHETAG -- 添加此选项可使用初始 ETag 设置键值对,如果在具有 ETag 的现有键值对上调用,此命令将透明地更新 ETag。这是 Garnet 特定的命令,您可以在此处阅读有关 ETag 支持的更多信息。WITHETAG 和 GET 选项不能同时发送。
Resp 回复
以下任何一种
- Nil 回复:未给定 GET:操作已中止(与 XX/NX 选项之一冲突)。
- 简单字符串回复:OK。未给定 GET:键已设置。
- Nil 回复:给定 GET:在 SET 之前键不存在。
- 批量字符串回复:给定 GET:键的先前值。
- 整数回复:给定 WITHETAG:在值上创建的 ETag 或更新的 Etag。
SETEX
语法
SETEX key value
将 key 设置为字符串值,并将 key 设置为在给定秒数后超时。
Resp 回复
简单字符串回复:OK。
SETNX
注意:SETNX 是一个已废弃的命令,在迁移或编写新代码时请使用带有 NX
参数的 SET。
语法
SETNX key value
如果键不存在,则将键设置为字符串值。当键已持有值时,不执行任何操作。
Resp 回复
以下之一
- 整数回复:如果键未设置,则为 0。
- 整数回复:如果键已设置,则为 1。
STRLEN
语法
STRLEN key
返回存储在 key 处的字符串值的长度。
Resp 回复
- 整数回复:存储在键处的字符串的长度,如果键不存在则为 0。
SETRANGE
语法
SETRANGE key offset value
覆盖存储在键处的字符串的一部分,从指定的偏移量开始,覆盖整个值的长度。
Resp 回复
- 整数回复:命令修改后字符串的长度。