Object 内置对象

对象 Redis

Redis 数据库客户端对象

用以创建和管理 Redis 数据库,创建方法:

1 2
var db = require("db"); var test = new db.openRedis("redis-server");

继承关系

成员属性

onsuberror

Function, 查询和设置错误处理函数,当 sub 出现错误或者网络中断时回调,当回调发生后,本对象的一切 sub 都将中止

1
Function Redis.onsuberror;

成员函数

command

redis 基础命令方法

1 2
Value Redis.command(String cmd, ...args);

调用参数:

  • cmd: String, 指定发送的命令
  • args: ..., 指定发送的参数

返回结果:

  • Value, 返回服务器返回的结果

set

将字符串值 value 关联到 key,如果 key 已经持有其他值, SET 就覆写旧值,无视类型

1 2 3
Redis.set(Buffer key, Buffer value, Long ttl = 0);

调用参数:

  • key: Buffer, 指定要关联的 key
  • value: Buffer, 指定要关联的数据
  • ttl: Long, 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间

setNX

将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。

1 2 3
Redis.setNX(Buffer key, Buffer value, Long ttl = 0);

调用参数:

  • key: Buffer, 指定要关联的 key
  • value: Buffer, 指定要关联的数据
  • ttl: Long, 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间

setXX

将 key 的值设为 value,只在键已经存在时,才对键进行设置操作。

1 2 3
Redis.setXX(Buffer key, Buffer value, Long ttl = 0);

调用参数:

  • key: Buffer, 指定要关联的 key
  • value: Buffer, 指定要关联的数据
  • ttl: Long, 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间

mset

同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值

1
Redis.mset(Object kvs);

调用参数:

  • kvs: Object, 指定要设置的 key/value 对象

同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值

1
Redis.mset(...kvs);

调用参数:

  • kvs: ..., 指定要设置的 key/value 列表

msetNX

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在

1
Redis.msetNX(Object kvs);

调用参数:

  • kvs: Object, 指定要设置的 key/value 对象

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在

1
Redis.msetNX(...kvs);

调用参数:

  • kvs: ..., 指定要设置的 key/value 列表

append

如果 key 已经存在并且是一个字符串,append 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在,append 就简单地将给定 key 设为 value

1 2
Integer Redis.append(Buffer key, Buffer value);

调用参数:

  • key: Buffer, 指定要追加的 key
  • value: Buffer, 指定要追加的数据

返回结果:

  • Integer, 追加 value 之后, key 中字符串的长度

setRange

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始

1 2 3
Integer Redis.setRange(Buffer key, Integer offset, Buffer value);

调用参数:

  • key: Buffer, 指定要修改的 key
  • offset: Integer, 指定修改的字节偏移
  • value: Buffer, 指定要覆盖的数据

返回结果:

  • Integer, 被修改之后,字符串的长度

getRange

返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)

1 2 3
Buffer Redis.getRange(Buffer key, Integer start, Integer end);

调用参数:

  • key: Buffer, 指定要查询的 key
  • start: Integer, 指定查询的起始字节偏移
  • end: Integer, 指定查询的结束字节偏移

返回结果:

  • Buffer, 截取得出的子字符串

strlen

返回 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误

1
Integer Redis.strlen(Buffer key);

调用参数:

  • key: Buffer, 指定要计算的 key

返回结果:

  • Integer, 字符串值的长度。当 key 不存在时,返回 0

bitcount

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

1 2 3
Integer Redis.bitcount(Buffer key, Integer start = 0, Integer end = -1);

调用参数:

  • key: Buffer, 指定要计算的 key
  • start: Integer, 指定要计算的起始字节,可以使用负数值,-1 表示最后一个字节,而 -2 表示倒数第二个字节,以此类推
  • end: Integer, 指定要计算的结束字节,可以使用负数值,-1 表示最后一个字节,而 -2 表示倒数第二个字节,以此类推

返回结果:

  • Integer, 被设置为 1 的位的数量

get

返回 key 所关联的字符串值,如果 key 不存在那么返回特殊值 Null

1
Buffer Redis.get(Buffer key);

调用参数:

  • key: Buffer, 指定要关联的 key

返回结果:

  • Buffer, 当 key 不存在时,返回 Null ,否则,返回 key 的值

mget

返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。

1
NArray Redis.mget(Array keys);

调用参数:

  • keys: Array, 指定要查询的 key 数组

返回结果:

  • NArray, 一个包含所有给定 key 的值的列表

返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。

1
NArray Redis.mget(...keys);

调用参数:

  • keys: ..., 指定要查询的 key 列表

返回结果:

  • NArray, 一个包含所有给定 key 的值的列表

getset

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

1 2
Buffer Redis.getset(Buffer key, Buffer value);

调用参数:

  • key: Buffer, 指定要查询修改的 key
  • value: Buffer, 指定修改的数值

返回结果:

  • Buffer, 返回给定 key 的旧值

decr

将 key 所储存的值减去减量

1 2
Long Redis.decr(Buffer key, Long num = 1);

调用参数:

  • key: Buffer, 指定要修改的 key
  • num: Long, 指定要减去的数值

返回结果:

  • Long, 减去 num 之后,key 的值

incr

将 key 所储存的值加上增量

1 2
Long Redis.incr(Buffer key, Long num = 1);

调用参数:

  • key: Buffer, 指定要修改的 key
  • num: Long, 指定要加上的数值

返回结果:

  • Long, 加上 num 之后,key 的值

setBit

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

1 2 3
Integer Redis.setBit(Buffer key, Integer offset, Integer value);

调用参数:

  • key: Buffer, 指定要修改的 key
  • offset: Integer, 指定修改的位偏移
  • value: Integer, 指定设置或清除的参数,可以是 0 也可以是 1

返回结果:

  • Integer, 指定偏移量原来储存的位

getBit

对 key 所储存的字符串值,获取指定偏移量上的位(bit)

1 2
Integer Redis.getBit(Buffer key, Integer offset);

调用参数:

  • key: Buffer, 指定要查询的 key
  • offset: Integer, 指定查询的位偏移

返回结果:

  • Integer, 字符串值指定偏移量上的位(bit)

exists

检查给定 key 是否存在

1
Boolean Redis.exists(Buffer key);

调用参数:

  • key: Buffer, 指定要关联的 key

返回结果:

  • Boolean, 若 key 存在,返回 True,否则返回 False

type

返回 key 所储存的值的类型

1
String Redis.type(Buffer key);

调用参数:

  • key: Buffer, 指定要查询的 key

返回结果:

  • String, 返回 key 所储存的值的类型,可能的值为 none(key不存在) string(字符串) list(列表) set(集合) zset(有序集) hash(哈希表)

keys

查找所有符合给定模式 pattern 的 key

1
NArray Redis.keys(String pattern);

调用参数:

  • pattern: String, 指定查询模式

返回结果:

  • NArray, 符合给定模式的 key 列表

del

删除给定的一个或多个 key,不存在的 key 会被忽略

1
Integer Redis.del(Array keys);

调用参数:

  • keys: Array, 指定要删除的 key 数组

返回结果:

  • Integer, 被删除 key 的数量

删除给定的一个或多个 key,不存在的 key 会被忽略

1
Integer Redis.del(...keys);

调用参数:

  • keys: ..., 指定要删除的 key 列表

返回结果:

  • Integer, 被删除 key 的数量

expire

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

1 2
Boolean Redis.expire(Buffer key, Long ttl);

调用参数:

  • key: Buffer, 指定要设定的 key
  • ttl: Long, 以毫秒为单位为 key 设置生存时间

返回结果:

  • Boolean, 若 key 存在,返回 True,否则返回 False

ttl

返回给定 key 的剩余生存时间

1
Long Redis.ttl(Buffer key);

调用参数:

  • key: Buffer, 指定要查询的 key

返回结果:

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

persist

移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key)

1
Boolean Redis.persist(Buffer key);

调用参数:

  • key: Buffer, 指定要设定的 key

返回结果:

  • Boolean, 若 key 存在,返回 True,否则返回 False

rename

将 key 改名为 newkey,当 key 和 newkey 相同,或者 key 不存在时,返回一个错误

1 2
Redis.rename(Buffer key, Buffer newkey);

调用参数:

  • key: Buffer, 指定要改名的 key
  • newkey: Buffer, 指定要改名的目的 key

renameNX

当且仅当 newkey 不存在时,将 key 改名为 newkey,当 key 不存在时,返回一个错误

1 2
Boolean Redis.renameNX(Buffer key, Buffer newkey);

调用参数:

  • key: Buffer, 指定要改名的 key
  • newkey: Buffer, 指定要改名的目的 key

返回结果:

  • Boolean, 修改成功时,返回 True,如果 newkey 已经存在,返回 False

sub

订阅给定的一个频道的信息,当消息发生时自动调用 func,func 包含两个参数,依次为 channel 和 message,同一频道同一函数只会回调一次

1 2
Redis.sub(Buffer channel, Function func);

调用参数:

  • channel: Buffer, 指定订阅的频道名称
  • func: Function, 指定回调函数

订阅给定的一组频道的信息,当消息发生时自动调用相应的回调函数,同一频道同一函数只会回调一次

1
Redis.sub(Object map);

调用参数:

  • map: Object, 指定频道映射关系,对象属性名称将作为频道名称,属性的值将作为回调函数

unsub

退订给定的频道的全部回调

1
Redis.unsub(Buffer channel);

调用参数:

  • channel: Buffer, 指定退订的频道名称

退订给定的频道的指定回调函数

1 2
Redis.unsub(Buffer channel, Function func);

调用参数:

  • channel: Buffer, 指定退订的频道名称
  • func: Function, 指定退订的回调函数

退订一组给定的频道的全部回调

1
Redis.unsub(Array channels);

调用参数:

  • channels: Array, 指定退订的频道数组

退订给定的一组频道的指定回调函数

1
Redis.unsub(Object map);

调用参数:

  • map: Object, 指定频道映射关系,对象属性名称将作为频道名称,属性的值将作为回调函数

psub

按照模板订阅一组频道的信息,当消息发生时自动调用 func,func 包含三个参数,依次为 channel,message 和 pattern,同一模板同一函数只会回调一次

1 2
Redis.psub(String pattern, Function func);

调用参数:

  • pattern: String, 指定订阅的频道模板
  • func: Function, 指定回调函数

订阅给定的一组频道模板的信息,当消息发生时自动调用相应的 func,同一频道同一函数只会回调一次

1
Redis.psub(Object map);

调用参数:

  • map: Object, 指定频道映射关系,对象属性名称将作为频道模板,属性的值将作为回调函数

unpsub

退订给定模板的频道的全部回调

1
Redis.unpsub(String pattern);

调用参数:

  • pattern: String, 指定退订的频道模板

退订给定模板的频道的指定回调函数

1 2
Redis.unpsub(String pattern, Function func);

调用参数:

  • pattern: String, 指定退订的频道模板
  • func: Function, 指定退订的回调函数

退订一组给定模板的频道的全部回调

1
Redis.unpsub(Array patterns);

调用参数:

  • patterns: Array, 指定发布的频道模板数组

退订一组模板的频道的指定回调函数

1
Redis.unpsub(Object map);

调用参数:

  • map: Object, 指定频道映射关系,对象属性名称将作为频道模板,属性的值将作为回调函数

pub

将信息 message 发送到指定的频道 channel

1 2
Integer Redis.pub(Buffer channel, Buffer message);

调用参数:

  • channel: Buffer, 指定发布的频道
  • message: Buffer, 指定发布的消息

返回结果:

  • Integer, 接收此消息的客户端数量

getHash

获取指定 key 的 Hash 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库

1
RedisHash Redis.getHash(Buffer key);

调用参数:

  • key: Buffer, 指定要获取的 key

返回结果:

  • RedisHash, 返回包含指定 key 的 Hash 对象

getList

获取指定 key 的 List 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库

1
RedisList Redis.getList(Buffer key);

调用参数:

  • key: Buffer, 指定要获取的 key

返回结果:

  • RedisList, 返回包含指定 key 的 List 对象

getSet

获取指定 key 的 Set 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库

1
RedisSet Redis.getSet(Buffer key);

调用参数:

  • key: Buffer, 指定要获取的 key

返回结果:

  • RedisSet, 返回包含指定 key 的 Set 对象

getSortedSet

获取指定 key 的 SortedSet 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库

1
RedisSortedSet Redis.getSortedSet(Buffer key);

调用参数:

  • key: Buffer, 指定要获取的 key

返回结果:


dump

序列化给定 key ,并返回被序列化的值,使用 restore 命令可以将这个值反序列化为 Redis 键

1
Buffer Redis.dump(Buffer key);

调用参数:

  • key: Buffer, 指定要序列化的 key

返回结果:

  • Buffer, 返回序列化之后的值,如果 key 不存在,那么返回 null

restore

反序列化给定的序列化值,并将它和给定的 key 关联

1 2 3
Redis.restore(Buffer key, Buffer data, Long ttl = 0);

调用参数:

  • key: Buffer, 指定要反序列化的 key
  • data: Buffer, 指定要反序列化的数据
  • ttl: Long, 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间

close

关闭当前数据库连接或事务

1
Redis.close();

toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

1
String Redis.toString();

返回结果:

  • String, 返回对象的字符串表示

toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

1
Value Redis.toJSON(String key = "");

调用参数:

  • key: String, 未使用

返回结果:

  • Value, 返回包含可 JSON 序列化的值