///
///
///
///
///
///
///
/**
* @description Redis 数据库客户端对象
*
* 用以创建和管理 Redis 数据库,创建方法:
* ```JavaScript
* var db = require("db");
* var test = new db.openRedis("redis-server");
* ```
*
*/
declare class Class_Redis extends Class_object {
/**
* @description redis 基础命令方法
* @param cmd 指定发送的命令
* @param args 指定发送的参数
* @return 返回服务器返回的结果
*/
command(cmd: string, ...args: any[]): any;
/**
* @description 将字符串值 value 关联到 key,如果 key 已经持有其他值, SET 就覆写旧值,无视类型
* @param key 指定要关联的 key
* @param value 指定要关联的数据
* @param ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间
*/
set(key: Class_Buffer, value: Class_Buffer, ttl?: number): void;
/**
* @description 将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。
* @param key 指定要关联的 key
* @param value 指定要关联的数据
* @param ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间
*/
setNX(key: Class_Buffer, value: Class_Buffer, ttl?: number): void;
/**
* @description 将 key 的值设为 value,只在键已经存在时,才对键进行设置操作。
* @param key 指定要关联的 key
* @param value 指定要关联的数据
* @param ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间
*/
setXX(key: Class_Buffer, value: Class_Buffer, ttl?: number): void;
/**
* @description 同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值
* @param kvs 指定要设置的 key/value 对象
*/
mset(kvs: FIBJS.GeneralObject): void;
/**
* @description 同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值
* @param kvs 指定要设置的 key/value 列表
*/
mset(...kvs: any[]): void;
/**
* @description 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
* @param kvs 指定要设置的 key/value 对象
*/
msetNX(kvs: FIBJS.GeneralObject): void;
/**
* @description 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
* @param kvs 指定要设置的 key/value 列表
*/
msetNX(...kvs: any[]): void;
/**
* @description 如果 key 已经存在并且是一个字符串,append 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在,append 就简单地将给定 key 设为 value
* @param key 指定要追加的 key
* @param value 指定要追加的数据
* @return 追加 value 之后, key 中字符串的长度
*/
append(key: Class_Buffer, value: Class_Buffer): number;
/**
* @description 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
* @param key 指定要修改的 key
* @param offset 指定修改的字节偏移
* @param value 指定要覆盖的数据
* @return 被修改之后,字符串的长度
*/
setRange(key: Class_Buffer, offset: number, value: Class_Buffer): number;
/**
* @description 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)
* @param key 指定要查询的 key
* @param start 指定查询的起始字节偏移
* @param end 指定查询的结束字节偏移
* @return 截取得出的子字符串
*/
getRange(key: Class_Buffer, start: number, end: number): Class_Buffer;
/**
* @description 返回 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误
* @param key 指定要计算的 key
* @return 字符串值的长度。当 key 不存在时,返回 0
*/
strlen(key: Class_Buffer): number;
/**
* @description 计算给定字符串中,被设置为 1 的比特位的数量
* @param key 指定要计算的 key
* @param start 指定要计算的起始字节,可以使用负数值,-1 表示最后一个字节,而 -2 表示倒数第二个字节,以此类推
* @param end 指定要计算的结束字节,可以使用负数值,-1 表示最后一个字节,而 -2 表示倒数第二个字节,以此类推
* @return 被设置为 1 的位的数量
*/
bitcount(key: Class_Buffer, start?: number, end?: number): number;
/**
* @description 返回 key 所关联的字符串值,如果 key 不存在那么返回特殊值 Null
* @param key 指定要关联的 key
* @return 当 key 不存在时,返回 Null ,否则,返回 key 的值
*/
get(key: Class_Buffer): Class_Buffer;
/**
* @description 返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
* @param keys 指定要查询的 key 数组
* @return 一个包含所有给定 key 的值的列表
*/
mget(keys: any[]): any[];
/**
* @description 返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
* @param keys 指定要查询的 key 列表
* @return 一个包含所有给定 key 的值的列表
*/
mget(...keys: any[]): any[];
/**
* @description 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
* @param key 指定要查询修改的 key
* @param value 指定修改的数值
* @return 返回给定 key 的旧值
*/
getset(key: Class_Buffer, value: Class_Buffer): Class_Buffer;
/**
* @description 将 key 所储存的值减去减量
* @param key 指定要修改的 key
* @param num 指定要减去的数值
* @return 减去 num 之后,key 的值
*/
decr(key: Class_Buffer, num?: number): number;
/**
* @description 将 key 所储存的值加上增量
* @param key 指定要修改的 key
* @param num 指定要加上的数值
* @return 加上 num 之后,key 的值
*/
incr(key: Class_Buffer, num?: number): number;
/**
* @description 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
* @param key 指定要修改的 key
* @param offset 指定修改的位偏移
* @param value 指定设置或清除的参数,可以是 0 也可以是 1
* @return 指定偏移量原来储存的位
*/
setBit(key: Class_Buffer, offset: number, value: number): number;
/**
* @description 对 key 所储存的字符串值,获取指定偏移量上的位(bit)
* @param key 指定要查询的 key
* @param offset 指定查询的位偏移
* @return 字符串值指定偏移量上的位(bit)
*/
getBit(key: Class_Buffer, offset: number): number;
/**
* @description 检查给定 key 是否存在
* @param key 指定要关联的 key
* @return 若 key 存在,返回 True,否则返回 False
*/
exists(key: Class_Buffer): boolean;
/**
* @description 返回 key 所储存的值的类型
* @param key 指定要查询的 key
* @return 返回 key 所储存的值的类型,可能的值为 none(key不存在) string(字符串) list(列表) set(集合) zset(有序集) hash(哈希表)
*/
type(key: Class_Buffer): string;
/**
* @description 查找所有符合给定模式 pattern 的 key
* @param pattern 指定查询模式
* @return 符合给定模式的 key 列表
*/
keys(pattern: string): any[];
/**
* @description 删除给定的一个或多个 key,不存在的 key 会被忽略
* @param keys 指定要删除的 key 数组
* @return 被删除 key 的数量
*/
del(keys: any[]): number;
/**
* @description 删除给定的一个或多个 key,不存在的 key 会被忽略
* @param keys 指定要删除的 key 列表
* @return 被删除 key 的数量
*/
del(...keys: any[]): number;
/**
* @description 为给定 key 设置生存时间,当 key 过期时,它会被自动删除
* @param key 指定要设定的 key
* @param ttl 以毫秒为单位为 key 设置生存时间
* @return 若 key 存在,返回 True,否则返回 False
*/
expire(key: Class_Buffer, ttl: number): boolean;
/**
* @description 返回给定 key 的剩余生存时间
* @param key 指定要查询的 key
* @return 以毫秒为单位,返回 key 的剩余生存时间,当 key 不存在时,返回 -2,当 key 存在但没有设置剩余生存时间时,返回 -1
*/
ttl(key: Class_Buffer): number;
/**
* @description 移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key)
* @param key 指定要设定的 key
* @return 若 key 存在,返回 True,否则返回 False
*/
persist(key: Class_Buffer): boolean;
/**
* @description 将 key 改名为 newkey,当 key 和 newkey 相同,或者 key 不存在时,返回一个错误
* @param key 指定要改名的 key
* @param newkey 指定要改名的目的 key
*/
rename(key: Class_Buffer, newkey: Class_Buffer): void;
/**
* @description 当且仅当 newkey 不存在时,将 key 改名为 newkey,当 key 不存在时,返回一个错误
* @param key 指定要改名的 key
* @param newkey 指定要改名的目的 key
* @return 修改成功时,返回 True,如果 newkey 已经存在,返回 False
*/
renameNX(key: Class_Buffer, newkey: Class_Buffer): boolean;
/**
* @description 订阅给定的一个频道的信息,当消息发生时自动调用 func,func 包含两个参数,依次为 channel 和 message,同一频道同一函数只会回调一次
* @param channel 指定订阅的频道名称
* @param func 指定回调函数
*
*/
sub(channel: Class_Buffer, func: (...args: any[])=>any): void;
/**
* @description 订阅给定的一组频道的信息,当消息发生时自动调用相应的回调函数,同一频道同一函数只会回调一次
* @param map 指定频道映射关系,对象属性名称将作为频道名称,属性的值将作为回调函数
*
*/
sub(map: FIBJS.GeneralObject): void;
/**
* @description 退订给定的频道的全部回调
* @param channel 指定退订的频道名称
*
*/
unsub(channel: Class_Buffer): void;
/**
* @description 退订给定的频道的指定回调函数
* @param channel 指定退订的频道名称
* @param func 指定退订的回调函数
*
*/
unsub(channel: Class_Buffer, func: (...args: any[])=>any): void;
/**
* @description 退订一组给定的频道的全部回调
* @param channels 指定退订的频道数组
*
*/
unsub(channels: any[]): void;
/**
* @description 退订给定的一组频道的指定回调函数
* @param map 指定频道映射关系,对象属性名称将作为频道名称,属性的值将作为回调函数
*
*/
unsub(map: FIBJS.GeneralObject): void;
/**
* @description 按照模板订阅一组频道的信息,当消息发生时自动调用 func,func 包含三个参数,依次为 channel,message 和 pattern,同一模板同一函数只会回调一次
* @param pattern 指定订阅的频道模板
* @param func 指定回调函数
*
*/
psub(pattern: string, func: (...args: any[])=>any): void;
/**
* @description 订阅给定的一组频道模板的信息,当消息发生时自动调用相应的 func,同一频道同一函数只会回调一次
* @param map 指定频道映射关系,对象属性名称将作为频道模板,属性的值将作为回调函数
*
*/
psub(map: FIBJS.GeneralObject): void;
/**
* @description 退订给定模板的频道的全部回调
* @param pattern 指定退订的频道模板
*
*/
unpsub(pattern: string): void;
/**
* @description 退订给定模板的频道的指定回调函数
* @param pattern 指定退订的频道模板
* @param func 指定退订的回调函数
*
*/
unpsub(pattern: string, func: (...args: any[])=>any): void;
/**
* @description 退订一组给定模板的频道的全部回调
* @param patterns 指定发布的频道模板数组
*
*/
unpsub(patterns: any[]): void;
/**
* @description 退订一组模板的频道的指定回调函数
* @param map 指定频道映射关系,对象属性名称将作为频道模板,属性的值将作为回调函数
*
*/
unpsub(map: FIBJS.GeneralObject): void;
/**
* @description 查询和设置错误处理函数,当 sub 出现错误或者网络中断时回调,当回调发生后,本对象的一切 sub 都将中止
*
*/
onsuberror: (...args: any[])=>any;
/**
* @description 将信息 message 发送到指定的频道 channel
* @param channel 指定发布的频道
* @param message 指定发布的消息
* @return 接收此消息的客户端数量
*
*/
pub(channel: Class_Buffer, message: Class_Buffer): number;
/**
* @description 获取指定 key 的 Hash 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库
* @param key 指定要获取的 key
* @return 返回包含指定 key 的 Hash 对象
*/
getHash(key: Class_Buffer): Class_RedisHash;
/**
* @description 获取指定 key 的 List 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库
* @param key 指定要获取的 key
* @return 返回包含指定 key 的 List 对象
*/
getList(key: Class_Buffer): Class_RedisList;
/**
* @description 获取指定 key 的 Set 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库
* @param key 指定要获取的 key
* @return 返回包含指定 key 的 Set 对象
*/
getSet(key: Class_Buffer): Class_RedisSet;
/**
* @description 获取指定 key 的 SortedSet 对象,此对象为包含指定 key 的客户端,只有调用其方法才会操作数据库
* @param key 指定要获取的 key
* @return 返回包含指定 key 的 SortedSet 对象
*/
getSortedSet(key: Class_Buffer): Class_RedisSortedSet;
/**
* @description 序列化给定 key ,并返回被序列化的值,使用 restore 命令可以将这个值反序列化为 Redis 键
* @param key 指定要序列化的 key
* @return 返回序列化之后的值,如果 key 不存在,那么返回 null
*/
dump(key: Class_Buffer): Class_Buffer;
/**
* @description 反序列化给定的序列化值,并将它和给定的 key 关联
* @param key 指定要反序列化的 key
* @param data 指定要反序列化的数据
* @param ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间
*/
restore(key: Class_Buffer, data: Class_Buffer, ttl?: number): void;
/**
* @description 关闭当前数据库连接或事务
*/
close(): void;
}