Object 內置對象

對象Redis

Redis 數據庫客戶端對象

用以創建和管理Redis 數據庫,創建方法:

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

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Redis|onsuberror|command();set();setNX();setXX();mset();msetNX();append();setRange();getRange();strlen();bitcount();get();mget();getset();decr();incr();setBit();getBit();exists();type();keys();del();expire();ttl();persist();rename();renameNX();sub();unsub();psub();unpsub();pub();getHash();getList();getSet();getSortedSet();dump();restore();close()] [object] <:- [Redis] Redis onsuberror command() set() setNX() setXX() mset() msetNX() append() setRange() getRange() strlen() bitcount() get() mget() getset() decr() incr() setBit() getBit() exists() type() keys() del() expire() ttl() persist() rename() renameNX() sub() unsub() psub() unpsub() pub() getHash() getList() getSet() getSortedSet() dump() restore() close() object toString() toJSON()

成員屬性

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 改名為new​​key,當key 和newkey 相同,或者key 不存在時,返回一個錯誤

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

調用參數:

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

renameNX

當且僅當newkey 不存在時,將key 改名為new​​key,當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 序列化的值