列表

interface ListClient {
    lindex: ((key, index) => string);
    linsert: ((key, pos, pivot, value) => number);
    llen: ((key) => number);
    lpop: ((key) => string);
    lpush: ((key, ...values) => number);
    lpushx: ((key, value) => number);
    lrange: ((key, start, stop) => string[]);
    lrem: ((key, count, value) => number);
    lset: ((key, index, value) => number);
    ltrim: ((key, start, stop) => string[]);
    rpop: ((key) => string);
    rpoplpush: ((source, destination) => string);
    rpush: ((key, ...values) => number);
    rpushx: ((key, value) => number);
}

Hierarchy (view full)

Properties

lindex: ((key, index) => string)

返回列表 key 中,下标为 index 的元素。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

如果 key 不是列表类型,返回一个错误。

返回列表中下标为 index 的元素。 如果 index 参数的值不在列表的区间范围内(out of range),返回 nil

Type declaration

    • (key, index): string
    • Parameters

      • key: string
      • index: number

      Returns string

linsert: ((key, pos, pivot, value) => number)

将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。

当 pivot 不存在于列表 key 时,不执行任何操作。

当 key 不存在时, key 被视为空列表,不执行任何操作。

如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到 pivot ,返回 -1 。 如果 key 不存在或为空列表,返回 0

Type declaration

    • (key, pos, pivot, value): number
    • Parameters

      • key: string
      • pos: Position
      • pivot: string
      • value: string

      Returns number

llen: ((key) => number)

返回列表 key 的长度。

如果 key 不存在,则 key 被解释为一个空列表,返回 0 .

如果 key 不是列表类型,返回一个错误。

Type declaration

    • (key): number
    • Parameters

      • key: string

      Returns number

lpop: ((key) => string)

移除并返回列表 key 的头元素。

列表的头元素。 当 key 不存在时,返回 nil 。

Type declaration

    • (key): string
    • Parameters

      • key: string

      Returns string

lpush: ((key, ...values) => number)

将一个或多个值 value 插入到列表 key 的表头

如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作

返回执行 LPUSH 命令后,列表的长度。

Type declaration

    • (key, ...values): number
    • Parameters

      • key: string

      • Rest ...values: string[]

        值列表

      Returns number

lpushx: ((key, value) => number)

将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。

lpush 命令相反,当 key 不存在时, LPUSHX 命令什么也不做

返回 LPUSHX 命令执行之后,表的长度。

Type declaration

    • (key, value): number
    • Parameters

      • key: string

      • value: string

      Returns number

lrange: ((key, start, stop) => string[])

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

返回一个列表,包含指定区间内的元素。

Type declaration

    • (key, start, stop): string[]
    • Parameters

      • key: string
      • start: number
      • stop: number

      Returns string[]

lrem: ((key, count, value) => number)

根据参数 count 的值,移除列表中与参数 value 相等的元素 count 的值可以是以下几种:

  1. count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。

  2. count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。

  3. count = 0 : 移除表中所有与 value 相等的值。

返回被移除元素的数量。 因为不存在的 key 被视作空表(empty list),所以当 key 不存在时, LREM 命令总是返回 0 。

Type declaration

    • (key, count, value): number
    • Parameters

      • key: string
      • count: number
      • value: string

      Returns number

lset: ((key, index, value) => number)

将列表 key 下标为 index 的元素的值设置为 value 。

当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

操作成功返回 ok ,否则返回错误信息。

Type declaration

    • (key, index, value): number
    • Parameters

      • key: string
      • index: number
      • value: string

      Returns number

ltrim: ((key, start, stop) => string[])

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

命令执行成功时,返回 ok

Type declaration

    • (key, start, stop): string[]
    • Parameters

      • key: string
      • start: number
      • stop: number

      Returns string[]

rpop: ((key) => string)

移除并返回列表 key 的尾元素。

返回列表的尾元素。 当 key 不存在时,返回 nil 。

Type declaration

    • (key): string
    • Parameters

      • key: string

      Returns string

rpoplpush: ((source, destination) => string)

命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:

  1. 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
  2. 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

如果 source 不存在,值 nil 被返回,并且不执行其他动作。

如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

注意, 如果redis是集群模式的,source 与 destination 必须是同一个分片下的。 可以通过添加花括号的方式, 如{key}1 {key}2 模式来的保证。

返回被弹出的元素

Type declaration

    • (source, destination): string
    • Parameters

      • source: string
      • destination: string

      Returns string

rpush: ((key, ...values) => number)

将一个或多个值 value 插入到列表 key 的表尾(最右边)。

如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。

返回执行 RPUSH 操作后,表的长度。

Type declaration

    • (key, ...values): number
    • Parameters

      • key: string

      • Rest ...values: string[]

        值列表

      Returns number

rpushx: ((key, value) => number)

将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

rpush命令相反,当 key 不存在时, RPUSHX 命令什么也不做。

返回 RPUSHX 命令执行之后,表的长度

Type declaration

    • (key, value): number
    • Parameters

      • key: string
      • value: string

      Returns number