Interface RedisPipeliner

Redis Pipeline 客户端

一次性执行多个 redis 命令, 有如下特性:

  1. 顺序执行, 即使出现错误, 也会不会中断流程, 继续往后执行。
  2. 不存在事务,即后面的执行出错,也不会导致前面的操作回滚。
  3. 需要限制单次 redis pipeline 的命令数,因为每个命令执行结果都会在服务端缓存的。
  4. 执行pipeline期间会阻塞其他命令执行

Since

24.7.0

Example

import { test } from "testing";
import * as assert from 'assert';
import * as redis from 'redis';

let cli = redis.newClient("test"); // 先创建 redis 连接
test("redis-database-client", function () {
let pipeline = cli.pipeline(); // 再创建 pipeline
let key = "pipeline_database_test"
pipeline.set(key, "a", {});
pipeline.exists(key);
pipeline.del(key)
pipeline.exists(key);
let results = pipeline.exec();
results.forEach(r => {
console.log("CMD [" + r.cmd + "]", "error [" + r.error + "]", "VALUE[" + r.value + "]");
})
assert.equal(4, results.length);
assert.equal("OK", results[0].value)
assert.equal(true, results[1].value)
assert.equal(1, results[2].value)
assert.equal(false, results[3].value)
})

```markdown

## 字符串相关
- [x] SET: 通过 StringClient.setEx
- [x] GET
- [x] GETSET
- [x] STRLEN
- [x] APPEND
- [x] INCR
- [x] INCRBY
- [x] DECR
- [x] DECRBY

## 哈希表
- [x] HSET
- [x] HSETNX
- [x] HGET
- [x] HEXISTS
- [x] HDEL
- [x] HLEN
- [x] HSTRLEN
- [x] HINCRBY
- [x] HMSET
- [x] HMGET
- [x] HKEYS
- [x] HVALS
- [x] HGETALL

## 列表
- [x] LPUSH
- [x] LPUSHX
- [x] RPUSH
- [x] RPUSHX
- [x] LPOP
- [x] RPOP
- [x] RPOPLPUSH
- [x] LREM
- [x] LLEN
- [x] LINDEX
- [x] LINSERT
- [x] LSET
- [x] LRANGE
- [x] LTRIM

## 集合
- [x] SADD
- [x] SISMEMBER
- [x] SPOP
- [x] SRANDMEMBER
- [x] SREM
- [x] SMOVE
- [x] SCARD
- [x] SMEMBERS
- [x] SINTER
- [x] SINTERSTORE
- [x] SUNION
- [x] SUNIONSTORE
- [x] SDIFF
- [x] SDIFFSTORE

## 有序集合
- [x] ZADD
- [x] ZSCORE
- [x] ZINCRBY
- [x] ZCARD
- [x] ZCOUNT
- [x] ZRANGE
- [x] ZREVRANGE
- [x] ZRANGEBYSCORE
- [x] ZREVRANGEBYSCORE
- [x] ZRANK
- [x] ZREVRANK
- [x] ZREM
- [x] ZREMRANGEBYRANK
- [x] ZREMRANGEBYSCORE

## 数据库
- [x] EXISTS
- [x] DEL: 之前只支持删除一个,现在改成多个,且返回被删除的key的个数。

## 自动过期
- [x] EXPIRE
- [x] TTL

由于脚本引擎的特性,会将实参类型隐式转换成兼容的入参类型,因此引擎在执行过程中可以接受非严格匹配的类型,

如 string 类型的入参可以接受 number 类型的实参, 但该行为是不可靠的,请按照方法签名指定的类型来传参。

interface RedisPipeliner {
    append: ((key, value) => void);
    decr: ((key) => void);
    decrBy: ((key, decrement) => void);
    del: ((...keys) => void);
    exec: (() => RedisCommandResult[]);
    exists: ((key) => void);
    expire: ((key, seconds) => void);
    get: ((key) => void);
    getset: ((key, value) => void);
    hdel: ((key, ...fields) => void);
    hexists: ((key, field) => void);
    hget: ((key, field) => void);
    hgetAll: ((key) => void);
    hincrby: ((key, field, increment) => void);
    hkeys: ((key) => void);
    hlen: ((key) => void);
    hmget: ((key, ...fields) => void);
    hmset: ((key, map) => void);
    hset: ((key, field, value) => void);
    hsetnx: ((key, field, value) => void);
    hstrlen: ((key, field) => void);
    hvals: ((key) => void);
    incr: ((key) => void);
    incrBy: ((key, increment) => void);
    lindex: ((key, index) => void);
    linsert: ((key, pos, pivot, value) => void);
    llen: ((key) => void);
    lpop: ((key) => void);
    lpush: ((key, ...values) => void);
    lpushx: ((key, value) => void);
    lrange: ((key, start, stop) => void);
    lrem: ((key, count, value) => void);
    lset: ((key, index, value) => void);
    ltrim: ((key, start, stop) => void);
    rpop: ((key) => void);
    rpoplpush: ((source, destination) => void);
    rpush: ((key, ...values) => void);
    rpushx: ((key, value) => void);
    sadd: ((key, ...members) => void);
    scard: ((key) => void);
    sdiff: ((...keys) => void);
    sdiffstore: ((destination, ...keys) => void);
    set: ((key, value, opt?) => void);
    sinter: ((...keys) => void);
    sinterstore: ((destination, ...keys) => void);
    sismember: ((key, member) => void);
    smembers: ((key) => void);
    smove: ((source, destination, member) => void);
    spop: ((key) => void);
    srandmember: ((key, count) => void);
    srem: ((key, ...members) => void);
    strlen: ((key) => void);
    sunion: ((...keys) => void);
    sunionstore: ((destination, ...keys) => void);
    ttl: ((key) => void);
    zaddPair: ((key, ...pairs) => void);
    zcard: ((key) => void);
    zcount: ((key, min, max) => void);
    zincrby: ((key, increment, member) => void);
    zrange: ((key, start, stop, opt?) => void);
    zrangebyscore: ((key, min, max, option?) => void);
    zrank: ((key, member) => void);
    zrem: ((key, ...members) => void);
    zremrangebyscore: ((key, min, max) => void);
    zrevrange: ((key, start, stop, opt?) => void);
    zrevrangebyscore: ((key, max, min, option?) => void);
    zrevrank: ((key, member) => void);
    zscore: ((key, member) => void);
    zremrangebyrank(key, start, stop): void;
}

Hierarchy (view full)

Properties

append: ((key, value) => void)

如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾。

如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。

Type declaration

    • (key, value): void
    • Parameters

      • key: string
      • value: string

      Returns void

decr: ((key) => void)

为键 key 储存的数字值减去一。

Type declaration

    • (key): void
    • Parameters

      • key: string

        键值

      Returns void

decrBy: ((key, decrement) => void)

将键 key 储存的整数值减去减量 decrement 。

Type declaration

    • (key, decrement): void
    • Parameters

      • key: string

        键值

      • decrement: number

        必须是正整数

      Returns void

del: ((...keys) => void)

删除给定的一个或多个 key

Type declaration

    • (...keys): void
    • Parameters

      • Rest ...keys: string[]

        待删除的键值列表

      Returns void

exec: (() => RedisCommandResult[])

Type declaration

exists: ((key) => void)

检查给定 key 是否存在。

存在返回 true, 失败返回 false

Type declaration

    • (key): void
    • Parameters

      • key: string

        键值

      Returns void

expire: ((key, seconds) => void)

为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。

可以对一个已经带有生存时间的 key 执行 EXPIRE 命令,新指定的生存时间会取代旧的生存时间。

设置成功返回 1 。 当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0 。

Type declaration

    • (key, seconds): void
    • Parameters

      • key: string

        键值

      • seconds: number

        生存时间(秒)

      Returns void

get: ((key) => void)

返回与键 key 相关联的字符串值。

Type declaration

    • (key): void
    • Parameters

      • key: string

        键值

      Returns void

getset: ((key, value) => void)

将键 key 的值设为 value , 并返回键 key 在被设置之前的旧值。

返回给定键 key 的旧值。

如果键 key 没有旧值, 也即是说, 键 key 在被设置之前并不存在, 那么命令返回 nil 。

Type declaration

    • (key, value): void
    • Parameters

      • key: string
      • value: string

      Returns void

hdel: ((key, ...fields) => void)

删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略

Type declaration

    • (key, ...fields): void
    • Parameters

      • key: string

        哈希表

      • Rest ...fields: string[]

        域列表

      Returns void

hexists: ((key, field) => void)

检查给定域 field 是否存在于哈希表 hash 当中

Type declaration

    • (key, field): void
    • Parameters

      • key: string

        哈希表

      • field: string

      Returns void

hget: ((key, field) => void)

返回哈希表中给定域的值。

Type declaration

    • (key, field): void
    • Parameters

      • key: string

        哈希表

      • field: string

      Returns void

hgetAll: ((key) => void)

返回哈希表 key 中,所有的域和值。

Type declaration

    • (key): void
    • Parameters

      • key: string

        哈希表

      Returns void

Returns

键值对

hincrby: ((key, field, increment) => void)

为哈希表 key 中的域 field 的值加上增量 increment

Type declaration

    • (key, field, increment): void
    • Parameters

      • key: string

        哈希表, 如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令

      • field: string

        域,如果域 field 不存在,那么在执行命令前,域的值被初始化为 0。 如果存在且值是字符串的, 则抛异常

      • increment: number

        增量,可为负数,本操作的值被限制在 64 位(bit)有符号数字表示之内

      Returns void

hkeys: ((key) => void)

返回哈希表 key 中的所有域。

Type declaration

    • (key): void
    • Parameters

      • key: string

        哈希表

      Returns void

hlen: ((key) => void)

返回哈希表 key 中域的数量。

Type declaration

    • (key): void
    • Parameters

      • key: string

        哈希表

      Returns void

hmget: ((key, ...fields) => void)

返回哈希表 key 中,一个或多个给定域的值。

Type declaration

    • (key, ...fields): void
    • Parameters

      • key: string

        哈希表

      • Rest ...fields: string[]

        域列表

      Returns void

hmset: ((key, map) => void)

同时将多个 field-value (域-值)对设置到哈希表 key 中。 此命令会覆盖哈希表中已存在的域。

Type declaration

    • (key, map): void
    • Parameters

      • key: string

        哈希表,如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作

      • map: "redis".StringDict

        必须是<string, string>键值对

      Returns void

hset: ((key, field, value) => void)

将哈希表 hash 中域 field 的值设置为 value

Type declaration

    • (key, field, value): void
    • Parameters

      • key: string

        哈希表

      • field: string

      • value: string

        字段值, 如果值为null或者undefined,设置成空字符串

      Returns void

hsetnx: ((key, field, value) => void)

当且仅当域 field 尚未存在于哈希表的情况下, 将它的值设置为 value

Type declaration

    • (key, field, value): void
    • Parameters

      • key: string

        哈希表

      • field: string

      • value: string

        字段值

      Returns void

hstrlen: ((key, field) => void)

返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)

Type declaration

    • (key, field): void
    • Parameters

      • key: string

        哈希表

      • field: string

      Returns void

hvals: ((key) => void)

返回哈希表 key 中所有域的值。

Type declaration

    • (key): void
    • Parameters

      • key: string

        哈希表

      Returns void

incr: ((key) => void)

为键 key 储存的数字值加上 1

Type declaration

    • (key): void
    • Parameters

      • key: string

        键值

      Returns void

incrBy: ((key, increment) => void)

为键 key 储存的数字值加上增量 increment

Type declaration

    • (key, increment): void
    • Parameters

      • key: string

        键值

      • increment: number

        必须是正整数

      Returns void

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

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

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

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

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

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

Type declaration

    • (key, index): void
    • Parameters

      • key: string
      • index: number

      Returns void

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

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

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

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

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

Type declaration

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

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

      Returns void

llen: ((key) => void)

返回列��� key 的长度。

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

如果 key 不���列�����类型,返回一个错���。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

lpop: ((key) => void)

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

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

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

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

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

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

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

Type declaration

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

      • key: string

      • Rest ...values: string[]

        值列表

      Returns void

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

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

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

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

Type declaration

    • (key, value): void
    • Parameters

      • key: string

      • value: string

      Returns void

lrange: ((key, start, stop) => void)

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

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

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

Type declaration

    • (key, start, stop): void
    • Parameters

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

      Returns void

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

根据参数 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): void
    • Parameters

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

      Returns void

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

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

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

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

Type declaration

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

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

      Returns void

ltrim: ((key, start, stop) => void)

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

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

命令执行成功时,返回 ok

Type declaration

    • (key, start, stop): void
    • Parameters

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

      Returns void

rpop: ((key) => void)

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

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

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

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

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

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

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

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

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

返回被弹出的元素

Type declaration

    • (source, destination): void
    • Parameters

      • source: string
      • destination: string

      Returns void

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

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

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

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

Type declaration

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

      • key: string

      • Rest ...values: string[]

        值列表

      Returns void

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

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

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

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

Type declaration

    • (key, value): void
    • Parameters

      • key: string
      • value: string

      Returns void

sadd: ((key, ...members) => void)

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略

假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

当 key 不是集合类型时,返回一个错误。

返回被添加到集合中的新元素的数量,不包括被忽略的元素。

Type declaration

    • (key, ...members): void
    • Parameters

      • key: string
      • Rest ...members: string[]

      Returns void

scard: ((key) => void)

返回集合 key 的基数(集合中元素的数量)。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

sdiff: ((...keys) => void)

返回一个集合的全部成员,该集合是所有给定集合之间的差集。

Type declaration

    • (...keys): void
    • Parameters

      • Rest ...keys: string[]

      Returns void

sdiffstore: ((destination, ...keys) => void)

这个命令的作用和 sdiff类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。

如果 destination 集合已经存在,则将其覆盖。

返回结果集中的元素数量。

Type declaration

    • (destination, ...keys): void
    • Parameters

      • destination: string
      • Rest ...keys: string[]

      Returns void

set: ((key, value, opt?) => void)

将字符串值 value 关联到 key

只在设置操作成功完成时才返回 OK ; 如果命令使用了 NX 或者 XX 选项, 但是因为条件没达到而造成设置操作未执行, 那么命令将返回 null

Type declaration

    • (key, value, opt?): void
    • Parameters

      Returns void

sinter: ((...keys) => void)

返回一个集合的全部成员,该集合是所有给定集合的交集

Type declaration

    • (...keys): void
    • Parameters

      • Rest ...keys: string[]

      Returns void

sinterstore: ((destination, ...keys) => void)

这个命令类似于 sinter命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

如果 destination 集合已经存在,则将其覆盖。

返回结果集中的成员数量。

Type declaration

    • (destination, ...keys): void
    • Parameters

      • destination: string
      • Rest ...keys: string[]

      Returns void

sismember: ((key, member) => void)

判断 member 元素是否集合 key 的成员。

如果 member 元素是集合的成员,返回 1 。 如果 member 元素不是集合的成员,或 key 不存在,返回 0 。

Type declaration

    • (key, member): void
    • Parameters

      • key: string
      • member: string

      Returns void

smembers: ((key) => void)

返回集合 key 中的所有成员。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

smove: ((source, destination, member) => void)

将 member 元素从 source 集合移动到 destination 集合, SMOVE 是一个原子操作。

如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。 否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

如果 member 元素被成功移除,返回 1 。 如果 member 元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回 0 。

注意如果是 redis 集群的话, source 与 destination 必须在同一个分片上。

Type declaration

    • (source, destination, member): void
    • Parameters

      • source: string
      • destination: string
      • member: string

      Returns void

spop: ((key) => void)

移除并返回集合中的一个随机元素。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

srandmember: ((key, count) => void)

如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。

count 参数:

如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。

如果 count 大于等于集合基数,那么返回整个集合。

如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

如果集合为空,返回空数组。

Type declaration

    • (key, count): void
    • Parameters

      • key: string
      • count: number

      Returns void

srem: ((key, ...members) => void)

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

返回被成功移除的元素的数量,不包括被忽略的元素。

Type declaration

    • (key, ...members): void
    • Parameters

      • key: string
      • Rest ...members: string[]

      Returns void

strlen: ((key) => void)

返回键 key 储存的字符串值的长度。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

sunion: ((...keys) => void)

返回一个集合的全部成员,该集合是所有给定集合的并集。

Type declaration

    • (...keys): void
    • Parameters

      • Rest ...keys: string[]

      Returns void

sunionstore: ((destination, ...keys) => void)

这个命令类似于 sunion 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

如果 destination 集合已经存在,则将其覆盖。

返回结果集中的元素数量

Type declaration

    • (destination, ...keys): void
    • Parameters

      • destination: string
      • Rest ...keys: string[]

      Returns void

ttl: ((key) => void)

以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

Type declaration

    • (key): void
    • Parameters

      • key: string

      Returns void

zaddPair: ((key, ...pairs) => void)

功能同 zadd

Type declaration

zcard: ((key) => void)

返回有序集 key 的基数

Type declaration

    • (key): void
    • Parameters

      • key: string

        键值

      Returns void

zcount: ((key, min, max) => void)

返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量.

Type declaration

    • (key, min, max): void
    • Parameters

      • key: string

        键值

      • min: minVal

        最小值

      • max: maxVal

        最大值

      Returns void

zincrby: ((key, increment, member) => void)

为有序集 key 的成员 member 的 score 值加上增量 increment

member 成员的新 score 值,以字符串形式表示

Type declaration

    • (key, increment, member): void
    • Parameters

      • key: string

        键值

      • increment: string

        增量, 可以是负数值

      • member: string

        成员

      Returns void

zrange: ((key, start, stop, opt?) => void)

返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递增(从小到大)来排序。 具有相同 score 值的成员按字典序(lexicographical order )来排列。

下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

Type declaration

    • (key, start, stop, opt?): void
    • Parameters

      Returns void

zrangebyscore: ((key, min, max, option?) => void)

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。 有序集成员按 score 值递增(从小到大)次序排列

min 和 max 可以是 -inf 和 +inf ,这样一来,你就可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE 这类命令。

默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。

Type declaration

    • (key, min, max, option?): void
    • Parameters

      Returns void

zrank: ((key, member) => void)

返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。 排名以 0 为底,也就是说, score 值最小的成员排名为 0 。

如果 member 是有序集 key 的成员,返回 member 的排名。 如果 member 不是有序集 key 的成员,返回 nil

Type declaration

    • (key, member): void
    • Parameters

      • key: string

        键值

      • member: string

        成员

      Returns void

zrem: ((key, ...members) => void)

移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。

返回被成功移除的成员的数量,不包括被忽略的成员。

Type declaration

    • (key, ...members): void
    • Parameters

      • key: string

        键值

      • Rest ...members: string[]

        成员列表

      Returns void

zremrangebyscore: ((key, min, max) => void)

移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。

返回被移除成员的数量

Type declaration

    • (key, min, max): void
    • Parameters

      • key: string

        键值

      • min: minVal

        最小值

      • max: maxVal

        最大值

      Returns void

zrevrange: ((key, start, stop, opt?) => void)

返回有序集 key 中,指定区间内的成员 其中成员的位置按 score 值递减(从大到小)来排列。 具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。

Type declaration

    • (key, start, stop, opt?): void
    • Parameters

      Returns void

zrevrangebyscore: ((key, max, min, option?) => void)

返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。 有序集成员按 score 值递减(从大到小)的次序排列。

Type declaration

    • (key, max, min, option?): void
    • Parameters

      Returns void

zrevrank: ((key, member) => void)

返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。 排名以 0 为底,也就是说, score 值最大的成员排名为 0 。

如果 member 是有序集 key 的成员,返回 member 的排名。 如果 member 不是有序集 key 的成员,返回 nil

Type declaration

    • (key, member): void
    • Parameters

      • key: string

        键值

      • member: string

        成员

      Returns void

zscore: ((key, member) => void)

返回有序集 key 中,成员 member 的 score 值。 如果 member 元素不是有序集 key 的成员,或 key 不存在,则报错

Type declaration

    • (key, member): void
    • Parameters

      • key: string

        键值

      • member: string

        成员

      Returns void

Methods

  • 移除有序集 key 中,指定排名(rank)区间内的所有成员。 区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

    返回被移除成员的数量

    Parameters

    • key: string

      键值

    • start: string

      起始位置

    • stop: string

      结束位置

    Returns void