跳到主要内容

原始字符串命令

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 回复

  • 整数回复:命令修改后字符串的长度。