# Redis开发文档

# 获取redis对象

  • 调用示例

推荐此方式:

const vk = require('vk-redis');
const redis = vk.redis();
1
2
  • 默认情况下,redis会自动读取 uni-config-center/vk-redis/config.json下的配置

  • 当然你也可以直接在获取redis对象时传配置参数,如:

const vk = require('vk-redis');
const redis = vk.redis({
  "port": 6379,
  "host": "你的Redis外网访问地址",
  "password": "用户名:密码",
  "db": 0
});
1
2
3
4
5
6
7
  • 注意:如果在 VK框架 中,不用写 const vk = require('vk-redis'); 这段代码。

# 字符串类型(String)

# get

用于获取字符串类型的数据

  • 调用示例
await redis.get(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# set

用于设置字符串类型数据,新增、修改均可

  • 调用示例
await redis.set(key, value);
await redis.set(key, value, duration); // duration可为小数,如 0.1代表100毫秒 10代表10秒
// 常用的为上面2种形式,下面的为非常用方式。
await redis.set(key, value, flag);
await redis.set(key, value, mode, duration);
await redis.set(key, value, mode, duration, flag);
1
2
3
4
5
6
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -
flag 区分状态进行SET NX:不存在时才设置 XX:存在时才设置 String -
mode 标识duration的单位 String 否(duration不为空时必填) EX:单位秒,PX:单位毫秒
duration 过期时间,到期后自动删除 Number -

# getrange

返回 key 中字符串值的子字符(类似substring)

  • 调用示例
await redis.getrange(key, start , end);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 起始位置 Number (0代表第一个字符,-1代表最后1个字符,-2代表最后第2个字符)
end 结束位置 Number (0代表第一个字符,-1代表最后1个字符,-2代表最后第2个字符)

# getset

将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

  • 调用示例
await redis.getset(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# mget

批量获取指定键的值

  • 调用示例
await redis.mget(key1, key2, ...);
1

# setex

将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。

  • 调用示例
await redis.setex(key, seconds, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
seconds Number 单位为秒
value String -

# setnx

只有在 key 不存在时才设置 key 的值。

  • 调用示例
await redis.setnx(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# strlen

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

  • 调用示例
await redis.strlen(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# mset

批量设置键值

  • 调用示例
await redis.mset(key1, value1, key2, value2);
1

# msetnx

批量设置键值,当且仅当所有给定 key 都不存在。

  • 调用示例
await redis.msetnx(key1, value1, key2, value2);
1

# psetex

这个命令和 setex 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 setex 命令那样,以秒为单位。

  • 调用示例
await redis.psetex(key, milliseconds, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
milliseconds Number 单位为毫秒
value String -

# incr

对指定的键执行加1操作,并返回加1后的值

  • 调用示例
await redis.incr(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# incrby

在指定的键上加一个整数,并返回更新后的值

  • 调用示例
await redis.incrby(key, increment);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
increment 整数,>0 代表增加 <0 代表减少 Number -

# incrbyfloat

在指定的键上加一个浮点数,并返回更新后的值

  • 调用示例
await redis.incrbyfloat(key, increment);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
increment 浮点数,>0 代表增加 <0 代表减少 Number -

# decrby

在指定的键上减一个整数,并返回更新后的值

  • 调用示例
await redis.decrby(key, increment);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
increment 整数,>0 代表减少 <0 代表增加 Number -

# append

如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

  • 调用示例
await redis.append(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value 需要追加的值 String -

# 键(key)

# del

用于删除执行的键

  • 调用示例
await redis.del(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# dump

用于序列化给定 key ,并返回被序列化的值。

  • 调用示例
await redis.dump(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# exists

判断一个键是否存在

  • 调用示例
await redis.exists(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# expire

设置一个键的过期时间

  • 调用示例
await redis.expire(key, seconds);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
seconds 过期时间 Number 单位秒,只能是整数

# expireat

EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

  • 调用示例
await redis.expireat(key, timestamp);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
timestamp 时间戳 Number 注意此时间戳不含毫秒

# pexpire

设置 key 的过期时间以毫秒计。

  • 调用示例
await redis.pexpire(key, milliseconds);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
milliseconds 过期时间 Number 单位毫秒

# pexpireat

设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

  • 调用示例
await redis.pexpireat(key, timestamp);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
timestamp 时间戳 Number 注意此时间戳含毫秒

# keys

查找所有符合给定模式( pattern)的 key 。如查询a开头的key

  • 调用示例
await redis.keys(key, pattern);
await redis.keys(key, "a*");
1
2
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
pattern 表达式 String -

# move

将当前数据库的 key 移动到给定的数据库 db 当中。

  • 调用示例
await redis.move(key, db);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
db redis的dbIndex String -

# persist

移除 key 的过期时间,key 将持久保持。

  • 调用示例
await redis.persist(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# pttl

获取过期时间剩余多少毫秒

  • 调用示例
await redis.pttl(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# ttl

获取过期时间剩余多少秒

  • 调用示例
await redis.ttl(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# randomkey

从当前数据库中随机返回一个 key 。

  • 调用示例
await redis.randomkey();
1

# rename

修改 key 的名称

  • 调用示例
await redis.rename(key, newkey);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
newkey 新的键名 String -

# renamenx

仅当 newkey 不存在时,将 key 改名为 newkey 。

  • 调用示例
await redis.renamenx(key, newkey);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
newkey 新的键名 String -

# scan

迭代数据库中的数据库键。

  • 调用示例
await redis.scan(cursor);
await redis.scan(0, "match", "a*");
1
2
  • 参数说明
参数 说明 类型 必填 说明
cursor 游标 String -

# type

返回 key 所储存的值的类型。

  • 调用示例
await redis.type(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# 列表类型(List)

# rpush

在List类型数据结尾追加数据

  • 调用示例
await redis.rpush(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# rpushx

用法同rpush,仅在list存在时才在List结尾追加数据

  • 调用示例
await redis.rpushx(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# rpop

从List类型数据结尾删除一条数据,并返回删除的值

  • 调用示例
await redis.rpop(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# rpoplpush

移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

  • 调用示例
await redis.rpoplpush(key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
key1 键名 String -
key2 另一个的键名 String -

# lpush

在List类型数据开头追加数据

  • 调用示例
await redis.lpush(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# lpushx

用法同lpush,仅在list存在时才在List开头追加数据

  • 调用示例
await redis.lpushx(key, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value String -

# lpop

从List类型数据开头删除一条数据,并返回删除的值

  • 调用示例
await redis.lpop(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# linsert

在List内指定元素位置前或后插入元素,未匹配到指定元素时不插入

  • 调用示例
await redis.linsert(key, dir, pivot, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
dir BEFORE:之前AFTER :之后 String -
pivot 数组的index String -
value 要插入的值 String -

# lindex

获取List内指定下标的元素

  • 调用示例
await redis.lindex(key, index);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
index 数组下标 Number -

# llen

返回List的长度

  • 调用示例
await redis.llen(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# lrange

返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

  • 调用示例
await redis.lrange(key, start, end);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 起始下标 Number -
end 结束下标 Number -

# lrem

根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。返回移除的数量

  • COUNT 的值可以是以下几种:
  • count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
  • count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
  • count = 0 : 移除表中所有与 VALUE 相等的值。
  • 调用示例
await redis.lrem(key, count, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
count 见上方count说明 Number -
value String -

# lset

通过索引来设置元素的值。成功返回OK

当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。

  • 调用示例
await redis.lset(key, index, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
index 数组的下标 Number -
value String -

# ltrim

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

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

  • 调用示例
await redis.ltrim(key, start, end);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 起始下标 Number -
end 结束下标 Number -

# blpop

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

如果列表为空,返回一个 nil 。 否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

  • 调用示例
await redis.blpop(key, seconds);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
seconds 最多等待多时秒 Number -

# brpop

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

  • 调用示例
await redis.brpop(key, seconds);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
seconds 最多等待多时秒 Number -

# brpoplpush

从列表中取出最后一个元素,并插入到另外一个列表的头部; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。

  • 调用示例
await redis.brpoplpush(key1, key2, seconds);
1
  • 参数说明
参数 说明 类型 必填 说明
key1 键名 String -
key2 键名 String -
seconds 最多等待多时秒 Number -

# hash(类似json)

类似json,但键和值必须是String

# hget

获取hash对象中某个键的值

  • 调用示例
await redis.hget(key, name);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -

# hset

设置hash对象

  • 调用示例
await redis.hset(key, json);
await redis.hset(key, name, value);
1
2
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -
json 在name不传的情况下,可以直接传整个json String -
value hash对象中的键名对应的值 String -

# hmget

获取多个hash的值

  • 调用示例
 await redis.hmget(key, name1, name2, ...);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name1 hash对象中的键名 String -
name2 hash对象中的键名 String -

# hgetall

获取整个hash对象

  • 调用示例
await redis.hgetall(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -

# hdel

删除一个或多个哈希表字段

  • 调用示例
await redis.hdel(key, name1, name2);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name1 hash对象中的键名 String -
name2 hash对象中的键名 String -

# hexists

查看哈希表 key 中,指定的字段是否存在。

  • 调用示例
await redis.hexists(key, name);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -

# hincrby

为哈希表 key 中的指定字段的整数值加上增量 increment 。

  • 调用示例
await redis.hincrby(key, name, increment);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -
increment 增量 increment Number -

# hincrbyfloat

为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

  • 调用示例
await redis.hincrbyfloat(key, name, increment);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -
increment 增量 increment Number -

# hkeys

获取所有哈希表中的字段

  • 调用示例
await redis.hkeys(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -

# hlen

获取哈希表中字段的数量

  • 调用示例
await redis.hlen(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -

# hsetnx

只有在字段 field 不存在时,设置哈希表字段的值。

  • 调用示例
await redis.hset(key, json);
await redis.hset(key, name, value);
1
2
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -
name hash对象中的键名 String -
json 在name不传的情况下,可以直接传整个json String -
value hash对象中的键名对应的值 String -

# hvals

获取哈希表中所有值。

  • 调用示例
await redis.hvals(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key redis键名 String -

# hscan

迭代集合中的元素

  • 调用示例
await redis.hscan(key, cursor);
await redis.hscan(key, 0, "match", "a*");
1
2
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
cursor 游标 Number -

# 集合(set)

set 类似 不可重复的 字符串数组

# sadd

向集合添加一个或多个成员

  • 调用示例
await redis.sadd(key, value1, value2);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value1 String -
value2 String -

# scard

获取集合的成员数量(length)

  • 调用示例
await redis.scard(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# sdiff

返回第一个集合与其他集合之间的差异。(key1有,key2没有的值)

  • 调用示例
await redis.sdiff(key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
key1 键名1 String -
key2 键名2 String -

# sdiffstore

返回给定所有集合的差集并存储在 destination 中

  • 调用示例
await redis.sdiffstore(destination, key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
destination 需要存储的键名 String -
key1 键名1 String -
key2 键名2 String -

# sinter

返回给定所有集合的交集(key1和key2都有的值)

  • 调用示例
await redis.sinter(key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
key1 键名1 String -
key2 键名2 String -

# sinterstore

返回给定所有集合的交集并存储在 destination 中

  • 调用示例
await redis.sinterstore(destination, key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
destination 需要存储的键名 String -
key1 键名1 String -
key2 键名2 String -

# sismember

判断 member 元素是否是集合 key 的成员 是返回1 不是返回0

  • 调用示例
await redis.sismember(key, member);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member 元素值 String -

# smembers

返回集合中的所有成员

  • 调用示例
 await redis.smembers(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# smove

将 member 元素从 source 集合移动到 destination 集合

  • 调用示例
await redis.smove(source, destination, member);
1
  • 参数说明
参数 说明 类型 必填 说明
source 被移动的集合键名 String -
destination 移动到目标集合键名 String -
member 元素的值 String -

# spop

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

  • 调用示例
await redis.spop(key, count);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
count 移除的数量 Number -

# srandmember

返回集合中一个或多个随机数

  • 调用示例
await redis.srandmember(key, count);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
count 数量 Number -

# srem

移除集合中一个或多个成员

  • 调用示例
await redis.srem(key, member1, member2);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member1 成员的值 String -
member2 成员的值 String -

# sunion

返回所有给定集合的并集

  • 调用示例
await redis.sunion(key1, key2, key3, ...);
1
  • 参数说明
参数 说明 类型 必填 说明
key1 键名1 String -
key2 键名2 String -
key3 键名3 String -

# sunionstore

所有给定集合的并集存储在 destination 集合中

  • 调用示例
await redis.sunionstore(destination, key1, key2, key3);
1
  • 参数说明
参数 说明 类型 必填 说明
destination 目标键名 String -
key1 键名1 String -
key2 键名2 String -
key3 键名3 String -

# sscan

迭代集合中的元素

  • 调用示例
await redis.sscan(key, cursor);
await redis.sscan(key, 0, "match", "a*");
1
2
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
cursor 游标 Number -

# 有序集合(zset)

# zadd

向集合添加一个或多个成员

  • 调用示例
await redis.zadd(key, score1, value1, score2, value2);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
score1 分值 Number -
value1 键值 String -
score2 分值 Number -
value2 键值 String -

# zcard

获取集合的成员数量

  • 调用示例
await redis.zcard(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# zcount

获取集合的成员数量根据分值

  • 调用示例
await redis.zcount(key, min, max);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
min 最小分值 Number -
max 最大分值 Number -

# zincrby

有序集合中对指定成员的分数加上增量 increment,并返回更新后的分值

可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。

  • 调用示例
await redis.zincrby(key, increment, member);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
increment 分值 Number -
member 成员 String -

# zinterstore

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中

  • 调用示例
await redis.zinterstore(destination, numkeys, key1, key2);
await redis.zinterstore("newZSet", 2, "oldZset1", "oldZset2");
1
2
  • 参数说明
参数 说明 类型 必填 说明
destination 目标键名 String -
numkeys 集合数量 Number -
key1 集合键名 String -
key2 集合键名 String -

# zlexcount

在有序集合中计算指定字典区间内成员数量

  • 调用示例
await redis.zlexcount(key, min, max);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
min 最小分值 Number -
max 最大分值 Number -

# zrange

通过索引区间返回有序集合指定区间内的成员(集合按照分值从小到大排序)

  • 调用示例
await redis.zrange(key, start, end);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 开始下标 Number -
end 结束下标 Number -

# zrangebylex

通过字典区间返回有序集合的成员(具有分页功能)(集合按照分值从小到大排序)

  • 调用示例
await redis.zrangebylex(key, min, max);
await redis.zrangebylex("zset", "-", "+", "limit", 0, 3);
await redis.zrangebylex("zset", "[2", "[3", "limit", 0, 3);
1
2
3
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
min 字典中排序位置较小的成员,必须以”[“开头,或者以”(“开头,可使用”-“代替 String -
max 字典中排序位置较大的成员,必须以”[“开头,或者以”(“开头,可使用”+”代替 String -
limit 返回结果是否分页,指令中包含LIMIT后offset、count必须输入 String -
offset 返回结果起始位置 String -
count 返回结果数量 String -

# zrank

返回有序集合中指定成员的索引

  • 调用示例
await redis.zrank(key, member);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member 成员 String -

# zrem

移除有序集合中的一个或多个成员

  • 调用示例
await redis.zrem(key, member1, member2);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member1 成员 String -
member2 成员 String -

# zremrangebylex

移除有序集合中给定的字典区间的所有成员

  • 调用示例
await redis.zremrangebylex(key, min, max);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
min 字典中排序位置较小的成员,必须以”[“开头,或者以”(“开头,可使用”-“代替 String -
max 字典中排序位置较大的成员,必须以”[“开头,或者以”(“开头,可使用”+”代替 String -

# zrevrange

返回有序集中指定区间内的成员,通过索引,分数从高到低

  • 调用示例
await redis.zrevrange(key, start, stop);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 开始的下标 Number -
stop 结束的下标 Number -

# zrevrangebyscore

通过字典区间返回有序集合的成员(具有分页功能)(集合按照分值从小到大排序)

  • 调用示例
await redis.zrevrangebyscore(key, min, max);
await redis.zrevrangebyscore("zset", "-", "+", "limit", 0, 3);
await redis.zrevrangebyscore("zset", "[2", "[3", "limit", 0, 3);
1
2
3
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
min 字典中排序位置较小的成员,必须以”[“开头,或者以”(“开头,可使用”-“代替 String -
max 字典中排序位置较大的成员,必须以”[“开头,或者以”(“开头,可使用”+”代替 String -
limit 返回结果是否分页,指令中包含LIMIT后offset、count必须输入 String -
offset 返回结果起始位置 String -
count 返回结果数量 String -

# srandmember

返回集合中一个或多个随机数

  • 调用示例
await redis.srandmember(key, count);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
count 数量 Number -

# zrevrank

移返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

  • 调用示例
await redis.zrevrank(key, member);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member 成员 String -

# zscore

返回有序集中,成员的分数值

  • 调用示例
await redis.zscore(key, member);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
member 成员 String -

# zunionstore

计算给定的一个或多个有序集的并集,并存储在新的 key 中

  • 调用示例
await redis.zunionstore(destination, numkeys, key1, key2);
await redis.zunionstore("newZset", 2, "oldZset1", "oldZset2");
1
2
  • 参数说明
参数 说明 类型 必填 说明
destination 目标键名 String -
numkeys 集合数量 Number -
key1 集合键名 String -
key2 集合键名 String -

# zscan

迭代有序集合中的元素(包括元素成员和元素分值)

  • 调用示例
await redis.zscan(key, cursor);
await redis.zscan("zset", 0, "match", "a*");
1
2
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
cursor 游标 Number -

# HyperLogLog

# pfadd

添加指定元素到 HyperLogLog 中。

  • 调用示例
await redis.pfadd(key, element1, element2);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
element1 元素1 Number -
element2 元素2 Number -

# pfcount

返回给定 HyperLogLog 的基数估算值。

  • 调用示例
await redis.pfcount(key);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -

# pfmerge

将多个 HyperLogLog 合并为一个 HyperLogLog

  • 调用示例
await redis.pfmerge(destkey, key1, key2);
1
  • 参数说明
参数 说明 类型 必填 说明
destkey 目标键名 String -
key1 键名 String -
key2 键名 String -

# 发布订阅

# psubscribe

订阅一个或多个符合给定模式的频道。

  • 调用示例
await redis.psubscribe(pattern);
1
  • 参数说明
参数 说明 类型 必填 说明
pattern 频道 String -

# pubsub

查看订阅与发布系统状态。

  • 调用示例
await redis.pubsub();
1

# publish

将信息发送到指定的频道。

  • 调用示例
await redis.publish(channel, message);
1
  • 参数说明
参数 说明 类型 必填 说明
channel 频道 String -
message 消息 String -

# punsubscribe

退订所有给定模式的频道。

  • 调用示例
await redis.punsubscribe(pattern1, pattern2);
1
  • 参数说明
参数 说明 类型 必填 说明
pattern1 频道 String -
pattern2 频道 String -

# subscribe

订阅给定的一个或多个频道的信息。

  • 调用示例
await redis.subscribe(channel1, channel2);
1
  • 参数说明
参数 说明 类型 必填 说明
channel1 频道 String -
channel2 频道 String -

# unsubscribe

指退订给定的频道。

  • 调用示例
await redis.unsubscribe(channel);
1
  • 参数说明
参数 说明 类型 必填 说明
channel 频道 String -

# 事务

# 完整示例

const multi = await redis.multi();

multi.set('key1', 'value1');
multi.set('key2', 'value2');
multi.set('key3', 'value3');

let execRes = await multi.exec();

1
2
3
4
5
6
7
8

# multi

标记一个事务块的开始。将多条指令作为一个原子执行。

  • 调用示例
await redis.multi();
1

# exec

执行所有事务块内的命令。

  • 调用示例
await multi.exec();
1

# discard

取消事务,放弃执行事务块内的所有命令。

  • 调用示例
await multi.discard();
1

# watch

监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

  • 调用示例
redis.watch(key1, key2);
1

# unwatch

取消 WATCH 命令对所有 key 的监视。

  • 调用示例
redis.unwatch();
1

# 位图(bitMap)

# getbit

获取指定位的值 值只有0或1

  • 调用示例
await redis.getbit(key, offset);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
offset Number -

# setbit

设置指定位的值 value只能是0或1 并返回旧值

  • 调用示例
await redis.setbit(key, offset, value);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
offset Number -
value 位的值 Number 只能是0或1

# bitcount

计算给定字符串中,被设置为 1 的比特位的数量。

  • 调用示例
await redis.bitcount(key, start, end);
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
start 开始位 Number -
end 结束位 Number -

# bitop

  • 对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到destkey上。
  • operation可以是AND、OR、NOT、XOR这四种操作中的任意一种。
  • bitop AND destkey key [key ...] ,对一个或多个key求逻辑并,并将结果保存到destkey
  • bitop OR destkey key [key ...] ,对一个或多个key求逻辑或,并将结果保存到destkey
  • bitop XOR destkey key [key ...] ,对一个或多个key求逻辑异或,并将结果保存到destkey
  • bitop NOT destkey key ,对给定key求逻辑非,并将结果保存到destkey
  • 除了NOT操作外,其他操作都可以接受一个或多个key作为输入
  • 当bitop处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看做0
  • 空的key也被看作是包含0的字符串序列
  • 调用示例
await redis.bitop('AND', 'active', 'active_20170708', 'active_20170709'); 
1

# bitpos

返回位图中第一个值为bit的二进制位的位置

在默认情况下,命令将检测到的整个位图,但用户也可以通过可选的start参数和end参数指定要检测的范围

  • 调用示例
await redis.bitpos(key, value start, end); 
1
  • 参数说明
参数 说明 类型 必填 说明
key 键名 String -
value Number 只能是0或1
start 开始字节,注意1字节=8位 Number -
end 结束字节,注意1字节=8位 Number -

# 执行lua脚本

某些情况下需要使用复杂的原子操作以避免高并发下数据修改混乱的问题,这种需求一般可通过执行lua脚本实现。如以下示例,判断redis中不存在key-test时,将其值设置为1;存在且小于10时进行加一操作;大于等于10时不进行操作直接返回。

  • 调用示例
const [operationType, currentValue] = await redis.eval(`
    local val = redis.call('get','key-test')
    local valNum = tonumber(val)
    if (valNum == nil) then
        redis.call('set', 'key-test', 1)
        return {0, 1}
    end
    if (valNum < 10) then
        redis.call('incrby', 'key-test', 1)
        return {1, valNum + 1}
    else
        return {2, valNum}
    end
    `, 0)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
最后修改时间: 11/22/2021, 19:41:11